标签:
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。
* 匹配前面的子表达式零次或多次 (0到多)
+ 匹配前面的子表达式一次或多次 (1到多)
? 匹配前面的子表达式零次或一次 (0或1)
{n} 匹配确定的 n 次
{n,} 至少匹配n 次 {4,} 最少匹配4次
{n,m} 最少匹配 n 次且最多匹配 m 次 {3,7}
示例代码:
例1:匹配连续的11位数字
例2:匹配字符abc在字符串中出现的次数为0或1次
例3:查询数字字符在字符串中最少出现4次
例4:查询文本字符(a-z)字符串出现的次数在3,7之间
在正则表达式,我们把以上能匹配多就不匹配少的情况,就称之为贪婪匹配。(默认原则)
在正则表达式中,可以通过?问号来改变我们的贪婪匹配原则,我们把这种原则称之为非贪婪匹配原则
示例代码: 加上?之后,会以3次为单位,进行分隔,不足3次的,会省略
不加?,会匹配数字数量为3-9的字符,并以9个为一组进行分隔
字符匹配符用于匹配某个或某些字符
在正则表达式通过一对方括号括起来的内容,我们称之为字符簇
l [a-z] :匹配a-z中的任一字符
l [A-Z] :匹配A-Z中的任一字符
l [0-9] :匹配0-9中的任一数字 \d
l [0-9a-z] : 匹配0-9或a-z中的任一字符
l [0-9a-zA-Z]:匹配0-9或a-z或A-Z中的任一字符
l [abcd] : 匹配字符a或字符b或字符c或字符d
l [1234]:匹配数字1或数字2或数字3或数字4
在正则表达式中的字符簇中,可以通过上档键^来取反
l [^a-z] :匹配除a-z外的任一字符
l [^0-9] :匹配除0-9外的任一字符 \D
l [^abcd] :匹配除字母abcd以外的任一字符
l \d :匹配一个数字字符 [0-9]
l \D :匹配一个非数字字符 [^0-9]
l \w :匹配包括下划线的任何单词字符 [0-9a-zA-Z_]
l \W :匹配任何非单词字符 [^\w]
l \s :匹配任何空白字符 空格、制表位等空白字符
l \S :匹配任何非空白字符 [^\s]
l . :匹配除 "\n" 之外的任何单个字符
示例代码
例1:匹配任一数字字符
例2:匹配Asw三个字符中的任一字符
例3:匹配所有的空格
例4:匹配三个连续的大写字母
例5:匹配中文字符
定位符可以将一个正则表达式固定在一行的开始或结束。也可以创建只在单词内或只在单词的开始或结尾处出现的正则表达式。
例1:匹配11位电话号码
例2:匹配固定电话
020-87654321 38结构
0451-7654321 47结构
^\d{3}-\d{8}$
^\d{4}-\d{7}$
^\d{4}-\d{8}$
^ :上档键(开始位置)
$ :结束位置
\b :代表单词边界位置
\B :代表非单词边界
例3:单词边界与非单词边界
1)转义符
在正则表达式中,\ 用于匹配某些特殊字符
/ + * ? ( ) [] {} . ^ $ \
示例代码:
例1:匹配[左侧符号
例2:匹配网址中的.号
例3:通过字符簇匹配.号
在正则表达式中,可以通过|代表选择符
例1:匹配hellojavascript或hellophp
(?=) :正向预查
(?!) :负向预查(逆向预查)
(?:) :输出内容但不捕获
结巴程序
我...我是是..一个个...帅帅帅帅...哥!";
转
我是一个帅哥!
示例代码:
说明:
解决方案:
1)首先把字符串中的所有.号移除替换为空字符
2)匹配到所有重复的字符,并通过子表达式匹配到原有内容,并放入一号缓冲区中
3)replace方法中,第二个参数,可以使用$n(n>=1&&n<=99的正整数)来引用n号缓冲区的内容。
代码请参考tools.html
zuoye01.html
zuoye02.html
…
zuoye04.html
snake.html
邮箱验证
IP验证
192.168.114.10
0-223第一位
0-255后三位
标签:
原文地址:http://www.cnblogs.com/lifushan/p/5463951.html