反前瞻匹配,也可称为 “否定顺序环视”。指正则表达式匹配的同时,还需要右侧紧随的不是特定的文本。
反前瞻匹配语法:
(?!expresion)
例如:匹配所有带有 “hello” 文本,并且紧随其后不能是 “world” 文本。在 RegexBuddy 中,运行 “hello (?!world)” 模式,如下图:
上图中,匹配了第二行、第三行中的 “hello” 文本;而第一行中的 “hello” 文本没有被匹配,这是因为第一行 “hello” 文本后面紧跟的是 “world” 文本。
在 RegexBuddy 中输入如下文本:
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
使用正则表达式替换功能,在每个数字的后面添加逗号(,),注意:数字的后面不能是数字。模式如下:
(\d)(?!\d)
运行效果如下图: