Notepad ++ newline正则表达式问题

时间:2011-06-10 17:18:46

标签: regex notepad++

  

可能重复:
  Find CRLF in Notepad++

我正在尝试使用notepad ++进行一些简单的正则表达式查找和替换。但是当我尝试使用正则表达式语法换行(\ r \ n)时,我得到了以下错误:

  

找不到文字:“\ r \ n”

\ r \ n适用于“扩展”搜索和其他文本编辑器,但不适用于正则表达式搜索。

有什么想法吗?

3 个答案:

答案 0 :(得分:5)

Notepad ++的正则表达式引擎不支持多行,因此无法匹配换行符。如果你需要查找和替换空白行,你需要使用扩展搜索。从Notepad ++ 6.0开始不再如此,它现在使用PCRE作为其正则表达式引擎并允许多行替换。有关详细信息,请参阅the accepted answer to the duplicate question

答案 1 :(得分:4)

来自Notepad ++帮助文件:

  

由于Notepad ++使用了Scintilla正则表达式引擎,因此它与SciTE相同,因此可以在此处找到完整的正则表达式选项列表(区别在于POSIX模式始终打开,这不是一个选项): http://www.scintilla.org/SciTERegEx.html


来自SciTE docs:

  

请注意,\ r和\ n永远不会匹配,因为在Scintilla中,正则表达式搜索每行都行(删除了行尾符号)。

答案 2 :(得分:2)

从Notepad ++原始替换选项,“扩展”模式支持\r\n,因此您只需将每个换行符替换为从未出现的唯一短字符串你的文件,例如abcdefg,制作一个巨大的一行字符串。然后,您可以在“Regex”模式下执行正则表达式替换作业,尝试保留唯一标记字符串,使用“Extend”模式替换\r\n,完成,不方便,愚蠢。