反后顾匹配

反后顾匹配,也可称为 “否定逆序环视”。前面章节介绍的正前瞻和反前瞻均是要求模式匹配时,需要右侧紧随特定文本,或紧随的不是特定文本。而反后顾与正前瞻方向相反。

反后顾会查看某个模式在从左至右的文本流的后面没有出现。同样,它有一个小于号(<),提醒后顾的是哪个方向。

正后顾匹配语法:

(?<!expresion)

例如:匹配所有带有 “world” 文本,并且前面不紧随 “hello” 文本。

在 RegexBuddy 中,运行 “(?<!hello) world” 模式,如下图:

上图中,第二行、第三行中的 “world” 文本被匹配,因为它的前面没有紧跟 “hello” 文本;而第一行中的 “world” 文本匹配失败,因为它们前面紧跟 “hello” 文本。

实例

在 RegexBuddy 中输入如下文本:

10 11 12 13 14 15
16 17 18 19 20 21
22 23 24 25 26 27

使用正则表达式替换功能,在每个数字的前面添加逗号。注意:数字的前面必须不紧随数字。模式如下:

(?<!\d)(\d)

运行效果如下图:

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号