正则表达式规则

正则表达式是用一个字符串表示一个特征,来验证另一个字符串是否满足这一特征的方法。

正则表达式主要用于检验规则匹配,查找特定规则字符串的位置,进行特定规则替换。


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值