正则表达式:非捕获组

3
[正则表达式初学者] 在Sublime Text 3中,如何查找例如aa这样的文本,并将其替换为aaa,条件是左右两侧没有a存在?我尝试过以下方法:
(?:[^a])(aa)(?:[^a])

但是这个选择了四个字符。如何只选中aa


2
使用 (?<!a)aa(?!a) - Wiktor Stribiżew
使用负回顾后发断言。 - user47589
@Wiktor 谢谢。您可否将其作为答案陈述,以便问题看起来已得到解答。 - blackened
1个回答

4

您可以使用负向回顾和展望的组合:

(?<!a)aa(?!a)

(?<!a)表示当前位置左边没有紧跟着的字符"a",(?!a)表示当前位置右边没有紧跟着的字符"a",若符合条件,则匹配成功。

请参考 PCRE regex demo(SublimeText3使用PCRE引擎)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接