最近的工作是号码过滤,需要提取文本中所有类似电话号码的数字。清理这块匹配的正则的时候好好学习了一下正则的零宽断言。
零宽断言理解了很简单:有一段文本,希望在前面匹配的就是预测先行断言
,希望在后面匹配的就是回顾后发断言
;希望这段文本存在的就是正
向的,不希望存在的就是负
向的;因为匹配出的结果无论怎么样都是不包含这段文本的,所以是零宽
(零的宽度)。
语法 | 名称 | 说明 |
---|---|---|
(?=exp) |
零宽度正预测先行断言 | ~ 匹配exp前面的位置 |
(?<=exp) |
零宽度正回顾后发断言 | ~ 匹配exp后面的位置 |
(?!exp) |
零宽度负预测先行断言 | ~ 匹配后面不是exp的位置 |
(?<!exp) |
零宽度负回顾后发断言 | ~ 匹配前面不是exp的位置 |