【发布时间】:2020-12-11 00:40:22
【问题描述】:
我正在使用 notepad++ 和 akelpad 进行文本编辑。
示例文本:hello,this is a test.are you ready?
搜索:(?<=[a-z,.?! ])([,.?!])(?=[a-z])
替换为:\1
替换结果:hello, this is a test. are you ready?
只有当我全部替换它们时,它才能按预期工作,但是如果我单击替换按钮,则什么也没有发生。它导航到下一个匹配项,就像我点击查找一样。
它发生在 npp 和 akelpad 中。为什么会发生这种情况,我应该尝试什么解决方案?
谢谢!
【问题讨论】:
-
尝试点击“全部替换”。这可能是您的编辑器的问题,因为正则表达式很好。见:regex101.com/r/4E0mu1/1;它匹配正确
-
只需使用
([,.?!])(?=[A-Za-z])。或([a-z,.?! ][,.?!])(?=[a-zA-Z]) -
我得到了同样的行为,可能是一个 Npp 错误。你可以向 Npp 的开发人员发出信号。
-
谢谢大家的想法。无论如何,我得到了我想要的结果。但有时我需要进行最终检查,所以一次更换一个对我来说非常重要。我尝试了 Wiktor 的替代方案,这似乎是我目前可以尝试的最好的方法,尽管如果我可以使用后向 subex 并且只突出显示匹配项以获得更清晰的视图,我仍然会更开心。
-
@katovic 如果您不需要重叠匹配,则不需要后视。在这种情况下,您不需要。
标签: regex notepad++ regex-lookarounds