正则表达式之我见—零宽断言 与 负向零宽断言

零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西。

分类代码/语法说明
零宽断言 (?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
负向零宽断言 (?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置

 

1.1 (?=exp)也叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp。

此处匹配以a结尾的字符串除a以外的其它部分字符内容,如1.1图结果所示。

 

1.2(?<=exp)也叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp。

此处匹配以b开头的字符串除b以外的其它部分字符内容,如1.2图所示。

 

1.3(?!exp)也叫零宽度负预测先行断言,断言此位置的后面不能匹配表达式exp。


此处结果一目了然,原来正则也有一颗热爱avi的心!此处条件是不匹配abc的字符串。

 

1.4(?<!exp)也叫零宽度负回顾后发断言,断言此位置的前面不能匹配表达式exp

 

此处匹配不以小写字母开头的7位字符串,唯独小写a开头的没有匹配到。这里需要说明一下的是A开头的,结果没有A是因为结果匹配的是7个1,此处只是允许A开头。

posted @ 2015-01-05 09:50  匠人  阅读(333)  评论(0编辑  收藏  举报