正则表达式:用点替换换行符

Regex: replace newline except the ones with a dot

在此先感谢您提供的任何帮助

我有这样的文字:

Bla bla bla bl[CR][LF]
a bla bla bla[CR][LF]
bla bla.[CR][LF]
Bla bla bla bla bl[CR][LF]
...and so on

我想替换所有新行,但最后一个字符为点的行除外。

这就是我想要的:

Bla bla bla bla bla bla bla bla bla.[CR][LF]
Bla bla bla bla bla.[CR][LF]
...and so on

我尝试使用支持 RegEx 的 Notepad++,使用“搜索和替换”选项卡 (Ctrl+H)。那是代码:

Search:   [^.\r\n]\r\n
Replace field had just a space.

它起作用了,但是它截断了每一行的最后一个字符。

Bla bla bla bla bla bla bla bla bl.[CR][LF]
Bla bla bla bla bl.[CR][LF]

由于我是 RegEx 新手,哪种方法最好?

在搜索字段中使用此正则表达式:(?<!\.)\r\n。这意味着找到前面没有 ..

的任何 \r\n

你的正则表达式意味着找到任何三个字符,其中第一个不是 . \r\n,最后两个是 \r\n。但是当你去替换时,它也会替换第一个字符。我发布的正则表达式将非句号检查为零长度,因此它不会替换该字符。