[正则表达式初学者] 在Sublime Text 3中,如何查找例如
aa
这样的文本,并将其替换为aaa
,条件是左右两侧没有a
存在?我尝试过以下方法:(?:[^a])(aa)(?:[^a])
但是这个选择了四个字符。如何只选中aa
?
aa
这样的文本,并将其替换为aaa
,条件是左右两侧没有a
存在?我尝试过以下方法:(?:[^a])(aa)(?:[^a])
但是这个选择了四个字符。如何只选中aa
?
您可以使用负向回顾和展望的组合:
(?<!a)aa(?!a)
(?<!a)
表示当前位置左边没有紧跟着的字符"a",(?!a)
表示当前位置右边没有紧跟着的字符"a",若符合条件,则匹配成功。
请参考 PCRE regex demo(SublimeText3使用PCRE引擎)。
(?<!a)aa(?!a)
。 - Wiktor Stribiżew