(?!exp) 零宽负向先行断言 (?<!exp) 零宽负向后行断言

来源:互联网 发布:丁丁考勤软件 编辑:程序博客网 时间:2024/05/05 21:18

(?!exp):零宽负向先行断言,只会匹配后缀exp不存在的位置。

例如:/d{3}(?!/d)匹配三位数字,而且这三位数字的后面不能是数字

(?<!exp)零宽负向后行断言,用来查找前缀exp不存在的位置。

例如(?<![a-z])/d{7}匹配前面不是小写字母的七位数字

复杂一点的理解为:(?<=<(/w+)>).*(?=<///1>)匹配不包含属性的简单HTML标签内里的内容,(<?(/w+)>)指定了这样的前缀:被尖括号括起来的单词(比如可能是<b>),然后是.*(任意的字符串),最后是一个后缀(?=<///1>)。注意后缀里的//,它用到了前面提过的字符转义;/1则是一个反向引用,引用的正是捕获的第一组,前面的(/w+)匹配的内容,这样如果前缀实际上是<b>的话,后缀就是</b>了。整个表达式匹配的是<b>和</b>之间的内容(再次提醒,不包括前缀和后缀本身)。

原创粉丝点击