如何在 Notepad++ 中查找/替换所有 CR/LF 字符?
我正在寻找与 Microsoft Word 中的 ^p 特殊字符等效的内容。
[\r\n]+
也应该工作
2012 年 3 月 26 日更新,Notepad++ 6.0的发布日期:
OMG,它现在确实有效!
原始答案 2008 (Notepad++ 4.x) - 2009-2010-2011 (Notepad++ 5.x)
实际上不,它似乎不适用于正则表达式......
但如果你有 Notepad++ 5.x,你可以使用“扩展”搜索模式并查找\r\n
. 那确实找到了你所有的CRLF
.
(我意识到这与其他答案相同,但同样,“扩展模式”仅适用于 Notepad++ 4.9、5.x 等)
自 2009 年 4 月以来,您在 Notepad++ 站点上有一篇关于此主题的 wiki 文章:
“如何替换行尾,从而更改行布局”。
(georgiecasey在下面的回答中提到)
一些相关的摘录包括以下搜索过程:
简单搜索(Ctrl+ F),搜索模式=
Normal
您可以
EOL
在编辑窗口中选择一个。
- 只需将光标移动到行尾,然后键入Shift+Right箭头。
- 或者,要
EOL
使用鼠标选择,从行尾开始并拖动到下一行的开头;拖动到右侧EOL
将不起作用。您可以手动复制并将EOL
其粘贴到 Unix 文件的字段中(LF
-only)。简单搜索 (Ctrl+F),搜索模式 = 扩展
“扩展”选项显示
\n
和\r
作为可以匹配的字符。
与普通搜索模式一样,Notepad++ 正在寻找确切的字符。
在 UNIX 格式的文件中搜索\r
不会找到任何东西,但搜索\n
会。同样,Macintosh 格式的文件将包含\r
但不包含\n
.简单搜索 (Ctrl+F),搜索模式 = 正则表达式
正则表达式使用字符
^
并将$
匹配字符串锚定到行的开头或结尾。例如,搜索return;$
将找到“return;”的出现。在同一行上没有后续文本的情况下发生。锚字符在所有文件格式中的作用相同。
这 '。' 点元字符与行尾不匹配。[在 Notepad++ 5.8.5 中测试]:带有显式
\r
或\n
不工作的正则表达式搜索(与Scintilla 文档相反)。
也不会搜索显式(粘贴的)LF 或选择 EOL 时放置在字段中的(不可见)EOL 字符。不带正则表达式的高级搜索 ( Ctrl+ )RCtrl+M将插入与换行符匹配的内容。它们将被替换字符串替换。
我推荐这种方法是最可靠的,除非你真的需要使用正则表达式。
例如,要删除双倍行距文件中的每隔一个换行符,请在搜索字符串框中输入Ctrl+M两次,并在替换字符串框中输入一次。使用正则表达式的高级搜索 ( Ctrl+ R)。
Ctrl+M和都不
$
匹配\r\n
。
同一个 wiki 还提到了Hex 编辑器替代方案:
- 在文档的开头键入新字符串。
- 然后选择以十六进制模式查看文档。
- 选择新行之一并点击Ctrl+ H。
- 当您打开“替换”对话框时,在背景上选择新的替换字符串并Ctrl+C复制它以将其粘贴到“替换为文本”输入中。
- 然后根据需要替换或全部替换。
注意:为换行选择的字符通常显示为
0a
.
如果文件是 Windows 格式,它可能有不同的值。在这种情况下,您可以随时前往Edit -> EOL Conversion -> Convert to Unix Format
,并在更换后将其切换回 和Edit -> EOL Conversion -> Convert to Windows Format
。
看来这是一个常见问题解答,提供的解决方案是:
没有正则表达式的简单搜索 (Ctrl+H)
您可以打开查看/显示行尾或查看/显示全部,然后选择现在可见的换行符。然后,当您启动命令时,一些与换行符匹配的字符将被粘贴到搜索字段中。与正则表达式模式不同,匹配项将被替换字符串替换。
注意 1:如果您使用鼠标选择它们,请从它们之前开始并拖动到下一行的开头。拖到行尾是行不通的。
注意 2:您不能自己将它们复制并粘贴到该字段中。
不带正则表达式的高级搜索 (Ctrl+R)
Ctrl+M 将插入与换行符匹配的内容。它们将被替换字符串替换。
在“替换”对话框中,您要将搜索模式设置为“扩展”。正常或正则表达式模式将不起作用。
然后只需找到“\r\n”(或者对于 unix 文件或者对于 mac 格式文件只查找 \n),并将替换设置为您想要的任何内容。
我对查找/替换窗口中的 \r\n 正则表达式不太满意。
但是,这适用于 Notepad++ v4.1.2:
使用“查看|显示行尾”菜单启用行尾字符的显示。(回车换行应显示为单个阴影 CRLF“字符”。)
选择一个 CRLF '字符'(将光标放在一个字符的前面,按住 SHIFT 键,然后按一次 RIGHT CURSOR 键)。
将 CRLF 字符复制到剪贴板。
确保您没有打开查找或查找/替换对话框。
打开查找/替换对话框。“查找内容”字段显示剪贴板的内容:在这种情况下,CRLF 字符 - 显示为 2 个“框字符”(可能是不可打印的字符?)
确保“正则表达式”选项为 OFF。
现在您应该能够根据需要计算、查找或替换。
带有 CRLF 的图像
没有 CRLF 的图像
我发现它的工作方式是使用“替换”功能,并使用“\n”和“扩展”模式。我正在使用版本 5.8.5。
在 2013,v6.13 或更高版本中,使用:
菜单编辑→ EOL 转换→ Windows 格式。
假设它具有“正则表达式”搜索,请查找 \r\n。我更喜欢 \r?\n,因为有些文件不使用回车。
编辑:感谢您的反馈,无论是谁投了反对票。我了解到...好吧,什么都没有,因为您没有提供任何反馈。为什么这是错误的?
使用高级搜索选项 ( Ctrl+ R) 并使用 CRLF ( Ctrl+ M) 的键盘快捷键插入回车。
如果您需要进行复杂的正则表达式替换,包括 \r\n,您可以通过三步方法解决限制:
\r\n
为标签,比如说#GO#
→检查“扩展”,替换\r\n
为#GO#
ICON="*"
从 html 书签中删除多行 → 检查正则表达式,替换ICON=.[^"]+.> by >
#GO#
为\r\n
转到查看->显示符号->显示所有字符//它对我有用
我在记事本++中打开了文件,并在几个步骤中进行了替换:
这会将所有中断放在应有的位置,并删除那些破坏文件的中断。
它对我有用。
进行此设置。菜单->查看->显示符号->取消选中显示行尾
我在 NP v6.9 中完全无法做到这一点。我发现在 Msoft Word (2K) 上很容易。
打开文档,转到编辑->替换。
然后在搜索框的底部,单击“更多”,然后找到“特殊”按钮,他们为您提供了一些东西。对于 Dos 样式,我使用了“段落”之一。这是 Windows 中的 cr lf 对。
要将包含不同行的文档更改为单行,每行在逗号分隔列表中形成一个条目:
\r\n
。,
用“ ”或“ ”填写“替换为”条目,
(取决于偏好)。这些步骤变成例如
富吧
巴兹
巴兹富
进入:
foo bar,bar baz,baz foo
或:(取决于偏好)
foo bar, bar baz, baz foo
也许你可以使用 TextFX 插件
在 TextFX 中,转到 textfx 编辑 → 删除空白行
只需在替换字段中进行查找并替换为空白的 \r,以便所有内容都上升到一行。然后进行查找和替换(在我的情况下是分号)并替换为 ;\n
:) -T&C