2.9 零宽度断言

  在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),结果分别如图和所示。

 

     

         

               

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值