如何解决为什么某些正则表达式匹配项不能一一替换?
我正在使用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中发生。为什么会发生这种情况,我应该尝试什么解决方案?
谢谢!
解决方法
由于正则表达式没问题,因此看起来像个错误。
通过尽可能多地捕获,可以解决Notepad ++和其他类似编辑器中的所有类似问题。
在您的情况下,您可以将后面的外观转换为消费模式:
([a-z,.?! ][,.?!])(?=[a-zA-Z])
^^^^^^^^^^^^^^^^^^
现在,当用\1
替换时,您将获得所需的行为,即在匹配值后将添加一个空格。
演示:
,如果这只是你想要的,试试这个......
查找内容:[,.]
替换为:$0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。