正则表达式在匹配中替换

时间:2015-06-06 13:40:52

标签: regex notepad++

在Notepad ++ RegEx中,我想搜索所有以波浪号开头并以\ n结尾的字符串,并在每个匹配中用所有空格替换所有空格。

也就是说,我想查找\~.*^的所有实例,并在生成的$0中,将所有[Space]s替换为[Non-breaking Space]

这可能吗?

2 个答案:

答案 0 :(得分:2)

您可以使用以下内容进行匹配:

(?:~|\G(?<!^))\S*\K\s

或尝试:

(?:~|\G(?!^))\S*\K[ ]

用非破坏空间替换

请参阅DEMO

Credits

答案 1 :(得分:0)

使用固定宽度模式的lookbehind正则表达式引擎(例如,Perl):

s/(~.*?) {2,}/\1 /g

使用可变宽度模式lookbehind正则表达式引擎:

s/(?<=\~.*) {2,}/  /g

或与Vim:

s/\(\~.*\)@<= \{2,}/  /g

我不确定Notepad ++。希望你可以根据上述内容进行解决。