正则表达式在一行的末尾用两个空格替换零个或多个空格

时间:2015-03-01 19:09:02

标签: regex notepad++ markdown

如何用匹配的非空格后跟正好两个空格替换以非空格后跟零个或多个空格结尾的行,使换行符保持不变?

搜索:

(\S)(\h*)$ 

会匹配。替换为:

\1  (?# two spaces after the one)

离开newline intact,这样就行了。我希望它会丢弃第二场比赛(\h*匹配除换行之外的所有空格),但事实并非如此。它留下第二个匹配,并在它前面添加两个空格。

编辑:这是一个例子。为清楚起见,[cr]是换行符(窗口中的CR + LF),[sp]表示1个空格,[2sp] 2个空格等。

eggs[cr]
bacon;[2sp][cr]
[cr]
sausage.[3sp][cr]

应该成为

eggs[2sp][cr]
bacon;[2sp][cr]
[cr]
sausage.[2sp][cr]

用例是在Notepad ++中写下markdown。我经常忘记标记< \ br>的两个空格我想通过正则表达式搜索/替换来解决这个问题。我知道两个或更多空格的降价是可以的,但是,只有两个空间更清洁。没有任何额外的搜索/替换三个或更多空格,最好是。

1 个答案:

答案 0 :(得分:1)

我只是这样做:

找到:(?<=\S)\h*$
替换为:(两个空格)