您的位置:首页 > 其它

正则表达式规则

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则表达式