问题描述
我正在使用notepad ++和akelpad进行文本编辑。
示例文字:hello,this is a test.are you ready?
搜索:(?<=[a-z,.?! ])([,.?!])(?=[a-z])
替换为:\1
替换结果:hello,this is a test. are you ready?
只有当我全部替换完之后,它才能按预期工作,但是如果单击“替换”按钮,则什么也没有发生。就像我单击查找一样,它导航到下一个匹配项。
refer to this screenshot
它同时在npp和akelpad中发生。为什么会发生这种情况,我应该尝试什么解决方案?
谢谢!
解决方法
由于正则表达式没问题,因此看起来像个错误。
通过尽可能多地捕获,可以解决Notepad ++和其他类似编辑器中的所有类似问题。
在您的情况下,您可以将后面的外观转换为消费模式:
([a-z,.?! ][,.?!])(?=[a-zA-Z])
^^^^^^^^^^^^^^^^^^
现在,当用\1
替换时,您将获得所需的行为,即在匹配值后将添加一个空格。
演示:
,
如果这只是你想要的,试试这个......
查找内容:[,.]
替换为:$0