首页 > 解决方案 > 将某些换行符替换为等效于在键盘 NotePad++ 正则表达式上按删除键

问题描述

我正在使用 Notepad++ 查找和替换,我有正则表达式,[^|]\r它会查找以 8778 开头的行的结尾。

8778|44523|0||TENNESSEE|ADMINISTRATION||ROLL 169 BATCH 8|1947-09-22|0|OnBase 
See Also 15990TT|

我想基本上将该行与它下面的行合并,所以它变成了这样:

8778|44523|0||TENNESSEE|ADMINISTRATION||ROLL 169 BATCH 8|1947-09-22|0|OnBase See Also 15990TT|

我试过替换是一个空格,但它抓住了该行的最后一个字符(在这种情况下是一个 e )并用空格替换它,所以它是

8778|44523|0||TENNESSEE|ADMINISTRATION||ROLL 169 BATCH 8|1947-09-22|0|OnBas  
See Also 15990TT|

有没有办法让它基本上合并两条线?

标签: regexnotepad++

解决方案


问题是你[^|]用来匹配回车之前不是管道字符的任何东西,在替换时,它将删除该字符(因此你为什么会丢失一个e)。

如果必须只匹配非管道字符后的回车符,请捕获前面的字符([^|])\r$,然后使用$1.

\n的正则表达式中也缺少 a ,这就是替换没有连接两行的原因。所以你的搜索应该是([^|])\r\n$,你的替换应该是$1


推荐阅读