可能是重复问题:
在Notepad++中查找CRLF
我试图使用notepad++进行一些简单的正则表达式查找和替换。但是当我尝试使用新行的正则表达式语法(\r\n)时,我会得到以下错误:
找不到文本:“\r\n”
\r\n 在“扩展”搜索和其他文本编辑器中有效,但在正则表达式搜索中无效。
有什么想法吗?
可能是重复问题:
在Notepad++中查找CRLF
我试图使用notepad++进行一些简单的正则表达式查找和替换。但是当我尝试使用新行的正则表达式语法(\r\n)时,我会得到以下错误:
找不到文本:“\r\n”
\r\n 在“扩展”搜索和其他文本编辑器中有效,但在正则表达式搜索中无效。
有什么想法吗?
Notepad++的正则表达式引擎不支持多行,因此无法匹配换行符。如果你需要查找和替换空白行,你需要使用扩展搜索。但从Notepad++ 6.0开始,这已经不再是真实情况了。现在它使用PCRE作为其正则表达式引擎并允许多行替换。有关更多信息,请参见重复问题的被接受的答案。
\r
、\n
(以及其他包括\t
、\b
等)。--编辑:还发现这篇帖子提到在模式字段中使用ctrl+Q,ctrl+J
插入新行。 - Brad Christiectrl+Q,ctrl+J
。我很好奇这是否有效。 - Brad Christie来自Notepad++帮助文件:
由于Notepad++使用Scintilla正则表达式引擎,因此与SciTE相同,因此可以在此处找到完整的正则表达式选项列表(不同之处在于POSIX模式始终开启,这不是一个选项):http://www.scintilla.org/SciTERegEx.html
来自SciTE文档:
请注意,\r和\n永远不匹配,因为在Scintilla中,正则表达式搜索是逐行进行的(已剥离行末字符)。
从Notepad++的原始替换选项中,"扩展"模式支持\r\n
,因此您可以将每个换行符替换为一个在您的文档中从未出现过的唯一短字符串,例如abcdefg
,以生成一个巨大的单行字符串。然后,在"正则表达式"模式下进行您的正则表达式替换工作,尽量保留唯一标记字符串,使用"扩展"模式将\r\n
替换回来,完成,虽然不方便,但是可行。
[\r\n]+
代替?将它们放在一个类中可以确保它们匹配(以任何顺序),但是连续出现。 (或者,您可以使用[\r\n]{1,2}
来查找单个返回实例。) - Brad Christie