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

regex replace zero or more spaces at the end of a line with exactly two spaces

如何用匹配的非白色space后跟恰好两个spaces,保留换行符?

正在搜索:

(\S)(\h*)$ 

将匹配。替换为:

  (?# two spaces after the one)

离开newline intact所以没关系。我希望它会丢弃第二个匹配项(\h* 匹配除换行符之外的所有白色 space),但事实并非如此。它离开第二个匹配项,并在其前面添加两个 space。

编辑: 这是一个例子。为了清楚起见,[cr]是换行符(CR + LF in windows),[sp]表示1 space,[2sp] 2 space等

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

应该变成

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

用例是在 Notepad++ 中编写 markdown。我通常会忘记两个 space 标记 <\br> 我想用正则表达式 search/replace 修复它。我知道降价可以使用两个或更多 spaces,但是,只有两个会更干净。没有任何额外的 search/replace 三重或更多 spaces,最好。

我会这样做:

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