正则表达式中的Notepad ++换行符

PaN*_*1Me 37 notepad++ find multilinestring

假设你有这个文件:

x
a
b
c
x
x
a
b
c
x
x
Run Code Online (Sandbox Code Playgroud)

你想用Notepad ++ 找到序列abc(并选择整行3行).请问如何在正则表达式中表达换行符?

Rob*_*obb 50

Notepad ++可以很容易地做到这一点,你甚至不需要正则表达式

在查找对话框中查看左下方并将搜索模式切换为扩展,允许\n等.

由于您正在使用Windows格式处理文件,因此您将寻找\ r \n(回车,换行符)

a\r\nb\r\nc
Run Code Online (Sandbox Code Playgroud)

将找到超过三行的模式

  • 哦..好吧我试过了\nb \nc ..忘了回车了.谢谢 ! (3认同)

dar*_*ioo 32

2012年6月18日更新

使用新的Notepad ++ v6,您确实可以使用正则表达式搜索换行符.所以你可以使用

a\r\nb\r\nc
Run Code Online (Sandbox Code Playgroud)

即使用正则表达式来完成你想要的东西.注意\r\n是换行符的Windows编码.在Unix文件中,它只是\n.

不幸的是,在使用正则表达式搜索时,你不能在Notepad ++中这样做.Notepad ++基于Scintilla编辑器组件,它不处理正则表达式中的换行符.

您可以使用扩展搜索进行换行搜索,但我认为这不会帮助您搜索3行.

更多信息在这里.

更新:Robb和StartClass0830对扩展搜索是正确的.它确实有效,但在使用正则表达式搜索时却没有.


Tec*_*ink 9

^a\x0D\x0Ab\x0D\x0Ac
Run Code Online (Sandbox Code Playgroud)

这将工作\ x0D是换行符,\ x0A是回车符.假设您文件中的每一行都以ascii 10和13结尾.


Kuc*_*ara 5

我找到了一个解决方法。简单地说,在扩展模式下,将所有内容替换\r\n为文档其余部分不存在的字符串,例如。,,,newline,,,(注意特殊的正则表达式字符,如$, &, 和*)。然后切换到 Regexp 模式,做一些替换(现在换行是,,,newline,,,)。接下来,再次切换到扩展模式并将所有内容替换,,,newline,,,\r\n.