Regex 为什么某些正则表达式匹配项没有被逐个替换?

Regex 为什么某些正则表达式匹配项没有被逐个替换?,regex,notepad++,regex-lookarounds,Regex,Notepad++,Regex Lookarounds,我正在使用notepad++和akelpad进行文本编辑 示例文本:您好,这是一个测试。准备好了吗? 搜索:(?它看起来像个bug,因为正则表达式很好 记事本++和其他类似编辑器中的所有类似问题都可以通过捕获尽可能多的内容来解决 在您的情况下,您可以将“回头看”转变为消费模式: ([a-z,.?! ][,.?!])(?=[a-zA-Z]) ^^^^^^^^^^^^^^^^^^ 现在,当替换为\1时,您将获得所需的行为,即在匹配值后面追加一个空格 演示: 如果这只是你想要的,试试这个 查找

我正在使用notepad++和akelpad进行文本编辑

示例文本:
您好,这是一个测试。准备好了吗?


搜索:
(?它看起来像个bug,因为正则表达式很好

记事本++和其他类似编辑器中的所有类似问题都可以通过捕获尽可能多的内容来解决

在您的情况下,您可以将“回头看”转变为消费模式:

([a-z,.?! ][,.?!])(?=[a-zA-Z])
^^^^^^^^^^^^^^^^^^   
现在,当替换为
\1
时,您将获得所需的行为,即在匹配值后面追加一个空格

演示:


如果这只是你想要的,试试这个

查找内容:
[,.]


替换为:
$0

尝试单击“全部替换”。这可能是编辑器的问题,因为正则表达式没有问题。请参阅:;它匹配正确只需使用
([,.?!])(?=[a-Za-z])
。或
([a-z,.?!])(?=[a-Za-z])
我也有同样的行为,可能是核电站的错误。你可以向核电站的开发人员发出信号。谢谢大家的想法。我得到了我想要的结果。但有时我需要进行最终检查,所以每次更换一个对我来说非常重要。我尝试了Wiktor的替代方案,这似乎是目前我能尝试的最好的方法,尽管我如果我可以使用lookbehind subex,只突出显示匹配以获得更清晰的视图,我会更高兴。@katovic如果不需要重叠的匹配,你不需要lookbehind。在这种情况下,你不需要。很好。也许这与lookbehind regex的使用有关,我不知道为什么。也许是bug,也许只是它的工作方式?@katovic这肯定是一个bug。
Replace
的要点是移动到匹配的位置(向您显示它在哪里),然后在再次按下它并转到下一个匹配时进行替换。