正则笔记

(?<=exp)去除前缀

去除前缀的查询表达式

例:

查找d和h之间的内容,但不包含d

内容:abcdefghijk

正则:(?<=d)\w+h

结果:efgh

 

(?=exp)去除后缀

去除后缀的查询表达式

例:

查找d和h之间的内容,但不包含h

内容:abcdefghijk

正则:d\w+(?=h)

结果:defg

 

(?!exp)不等于

不包含表达式,必须写在表达式前面

例:

查找ab之间的内容,但内容中不包含有ab字符

内容:53g34abc4a3dabefgabhijkab3453

正则:ab((?!ab).)*ab

结果:1、abc4a3dab     2、abhijkab

 

(?<!exp)不等于

不包含表达式,必须写在表达式后面

例:

查找ab之间的内容,但内容中不包含有ab字符

内容:53g34abc4a3dabefgabhijkab3453

正则:ab(.(?<!ab))*ab

结果:1、abc4a3dab     2、abhijkab

 

(?#comment)注释

例:

2[0-4]\d(?#200-249)|25[0-5](?#250-255)|[01]?\d\d?(?#0-199)

 

贪婪与懒惰

贪婪:当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符

例:

//查找ab之间的内容

内容:123ab123ab123ab123ab123

正则:ab.*ab

结果:ab123ab123ab123ab

 

懒惰:符号“?”。有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符

例:

//查找ab之间的内容

内容:123ab123ab123ab123ab123

正则:ab.*?ab

结果:1、ab123ab 2、ab123ab

posted @ 2012-09-18 10:07  鸿bi  阅读(171)  评论(0编辑  收藏  举报