2.9 零宽度断言

来源:互联网 发布:淘宝三叶草正品店 编辑:程序博客网 时间:2024/05/17 01:31

  在2.1.1小节中,元字符/b^$都匹配一个位置,且这个位置满足一定的条件。在此,把满足这一个条件称为断言或零宽度断言。正则表达式中的常用零宽度断言明如表2-10所示。

2-10 零宽度断言

字符(断言)

说明

^

匹配行的开始位置。

$

匹配行的结束位置。

/A

匹配必须出现在字符串的开头。

/Z

匹配必须出现在字符串的结尾或字符串结尾处的/换行符号n之前。

/z

匹配必须出现在字符串的结尾。

/G

匹配必须出现在上一个匹配结束的地方。

/b

匹配字符的开始或结束位置。

/B

匹配不是在字符的开始或结束位置。

  在表2-8中,表达式(?=experssion)(?!experssion)(?<=experssion)(?<!experssion)都是匹配一个位置。下面将详细介绍表达式(?=experssion)(?<=experssion)

  (?=experssion)又称为零宽度正预测先行断言,它断言自身位置的后面能够匹配表达式experssion。以下正则表达式匹配以字符串“ed”结尾的单词的前面部分,即匹配单词的除字符串“ed”之外的部分。

/b/w+(?=ed/b)                                                              73

  (?<=experssion)又称为零宽度正回顾后发断言,它断言自身位置的前面能够匹配表达式experssion。以下正则表达式匹配以字符串“an”开头的单词的后面部分,即匹配单词的除字符串“an”之外的部分。

(?<=/ban)/w+/b                                                                74

使用工具Regex Tester分别测试正则表达式(73)和(74),结果分别如图所示。

 

     

         

               

 

 

原创粉丝点击