正则表达式规则
2014-12-06 03:12
274 查看
正则表达式是用一个字符串表示一个特征,来验证另一个字符串是否满足这一特征的方法。
正则表达式主要用于检验规则匹配,查找特定规则字符串的位置,进行特定规则替换。
1. 匹配普通字符
匹配一个特定的字符,如a,那么正则表达式就写为a。
2. 匹配转义字符
一般转义字符:
\r 回车,\n 换行,\t 制表符,\f 换页符,\v 垂直制表符
正则表达式中出现的新转义字符:
\^ 表示^符号,\$ 表示$符号,\. 表示.小数点
3. 匹配通配符
\d 任意一个数字,0-9
\w 任意一个数字,字母或下划线,0-9,a-z,A-Z,_
\s 空格,换行符,制表符,换页符等空白字符
. 小数点匹配除换行符以外任何字符
还有\D,\W,\S。分别表示小写字母代表意思的取反。如\D表示非数字
4. 中括号
[] 中会包含一系列字符,只要能够与中括号中的一个匹配,即认为是匹配。
如[abc]匹配a或b或c。称之为字符集。
在字符集中可以出现^,表示字符集取反。
5. 匹配出现次数
大括号:
{}中一般有数字,用于修饰前面的表达式的重复次数。
{n}表示表达式重复n次。
{m, n}表示表达式最少重复m次,最多重复n次。
{m,}表示表达式最少重复m次。
闭包运算:
? 表达式出现0次或者1次,相当于{0, 1}。
+ 表达式至少出现一次,相当于{1,}。
* 表达式不出现或者出现任意次,相当于{0,}。
6. 边界运算符
^ 表示在字符串开始处匹配。如^aa可以匹配aabb,但不能匹配bbaa。
$ 表示字符串结束处匹配,如$aa可以匹配bbaa,但不能匹配aabb。
\b 边界匹配,要求匹配区域一边是\w,另一边是\W。如er可以匹配never,不能匹配verb。
\B 非边界匹配,要求匹配区域两边都是\w。如er可以匹配verb,不能匹配never。
举一个例子:
使用规则".\b."匹配“@#abc”,匹配到“#a”。
7. 或运算符
| 一个竖线表示或运算符
8. 反向引用
反向引用主要用于匹配html标签,如<p>abc</p>等,可用规则<(\w+)>(.*?)</\1>进行匹配。其中\1指代第一个括号中匹配规则匹配到的字符串,以此类推\2表示第二个。通过这样处理可以确保标签的配对。
9. 贪婪匹配
贪婪与非贪婪匹配区别在于匹配次数后面是否有一个问号。如(a)(\d+)与(a)(\d+?)对于a12345的匹配是不同的,前者是贪婪匹配,会匹配到a12345,而后者只会匹配到满足条件,不会往下匹配,会匹配到a1,是非贪婪匹配。
以上只是列出了一些较常用的功能。有关于正则表达式,还可以参考微软MSDN提供的资料。
http://msdn.microsoft.com/zh-cn/library/az24scfc(v=vs.110).aspx
正则表达式主要用于检验规则匹配,查找特定规则字符串的位置,进行特定规则替换。
1. 匹配普通字符
匹配一个特定的字符,如a,那么正则表达式就写为a。
2. 匹配转义字符
一般转义字符:
\r 回车,\n 换行,\t 制表符,\f 换页符,\v 垂直制表符
正则表达式中出现的新转义字符:
\^ 表示^符号,\$ 表示$符号,\. 表示.小数点
3. 匹配通配符
\d 任意一个数字,0-9
\w 任意一个数字,字母或下划线,0-9,a-z,A-Z,_
\s 空格,换行符,制表符,换页符等空白字符
. 小数点匹配除换行符以外任何字符
还有\D,\W,\S。分别表示小写字母代表意思的取反。如\D表示非数字
4. 中括号
[] 中会包含一系列字符,只要能够与中括号中的一个匹配,即认为是匹配。
如[abc]匹配a或b或c。称之为字符集。
在字符集中可以出现^,表示字符集取反。
5. 匹配出现次数
大括号:
{}中一般有数字,用于修饰前面的表达式的重复次数。
{n}表示表达式重复n次。
{m, n}表示表达式最少重复m次,最多重复n次。
{m,}表示表达式最少重复m次。
闭包运算:
? 表达式出现0次或者1次,相当于{0, 1}。
+ 表达式至少出现一次,相当于{1,}。
* 表达式不出现或者出现任意次,相当于{0,}。
6. 边界运算符
^ 表示在字符串开始处匹配。如^aa可以匹配aabb,但不能匹配bbaa。
$ 表示字符串结束处匹配,如$aa可以匹配bbaa,但不能匹配aabb。
\b 边界匹配,要求匹配区域一边是\w,另一边是\W。如er可以匹配never,不能匹配verb。
\B 非边界匹配,要求匹配区域两边都是\w。如er可以匹配verb,不能匹配never。
举一个例子:
使用规则".\b."匹配“@#abc”,匹配到“#a”。
7. 或运算符
| 一个竖线表示或运算符
8. 反向引用
反向引用主要用于匹配html标签,如<p>abc</p>等,可用规则<(\w+)>(.*?)</\1>进行匹配。其中\1指代第一个括号中匹配规则匹配到的字符串,以此类推\2表示第二个。通过这样处理可以确保标签的配对。
9. 贪婪匹配
贪婪与非贪婪匹配区别在于匹配次数后面是否有一个问号。如(a)(\d+)与(a)(\d+?)对于a12345的匹配是不同的,前者是贪婪匹配,会匹配到a12345,而后者只会匹配到满足条件,不会往下匹配,会匹配到a1,是非贪婪匹配。
以上只是列出了一些较常用的功能。有关于正则表达式,还可以参考微软MSDN提供的资料。
http://msdn.microsoft.com/zh-cn/library/az24scfc(v=vs.110).aspx