我如何在Notepad++中找到/替换所有的CR/LF字符?
我在寻找等同于微软Word中的^p特殊字符的东西。
[\rn]+也应该工作
[\rn]+
更新2012年3月26日,Notepad++ 6.0的发布日期。
OMG,它现在真的可以工作了!!!。
在Notepad++中的PCRE regexp]2!
原答案 2008 (Notepad++ 4.x) - 2009-2010-2011 (Notepad++ 5.x)
事实上没有,它似乎不能与regexp一起工作...
但如果你有 Notepad++ 5.x,你可以使用 'extended'搜索模式并寻找 rr\n。这确实能找到你所有的CRLF。
rr\n
CRLF
(我意识到这是与其他答案相同的答案,但同样,'扩展模式'只适用于Notepad++ 4.9、5.x及以上版本)
从2009年4月起,你在Notepad++网站上有一篇关于这个主题的wiki文章。 "如何替换行尾,从而改变行的布局"。 (由georgiecasey在他/她的以下答案中提到)
一些相关的摘录包括以下的搜索过程。
简单搜索(Ctrl+F),搜索模式=正常。
正常
你可以在编辑窗口选择一个EOL。
EOL
只要把光标移到行尾,然后输入Shift+Right箭头。 或者,用鼠标选择 "EOL",就从行尾开始,拖到下一行的开头;拖到 "EOL "的右边不会有效果。 你可以手动复制EOL'并粘贴到Unix文件的字段中(只限于LF')。
EOL'并粘贴到Unix文件的字段中(只限于
简单搜索(Ctrl+F),搜索模式=扩展
"Extended"选项显示n和r为可匹配的字符。 与普通搜索模式一样,Notepad++正在寻找准确的字符。 在UNIX格式的文件中搜索r不会找到任何东西,但搜索n会。同样地,Macintosh格式的文件将包含r,但不包含n。
n
r
简单搜索(Ctrl+F),搜索模式=正则表达式
正则表达式使用字符^和$将匹配字符串固定在行的开头或结尾。例如,搜索 "return;$"将找到在同一行中没有后续文字的"return;"的出现。锚定字符在所有文件格式中的作用是相同的。 '.'点元字符不匹配行尾。
^
$
[在Notepad++ 5.8.5\中测试]。带有明确的r或n的正则表达式搜索不起作用(与Scintilla文档相反)。 在明确的(粘贴的)LF上的搜索,或者在选择EOL时放在字段中的(不可见的)EOL字符上的搜索也不工作。 高级搜索(Ctrl+R)不需要使用重排法
Ctrl+M将插入与新行匹配的东西。它们将被替换字符串所取代。 我推荐这种方法是最可靠的,除非你真的需要使用regex。 举个例子,要删除一个双倍行距的文件中的每一个换行,在搜索字符串框中输入Ctrl+M两次,并在替换字符串框中输入一次。
高级搜索(Ctrl+R)与Regexp。
Ctrl+M,$和r都不匹配。
同一维基还提到了Hex编辑器的替代品。
在文档的开头输入新的字符串。 然后选择在十六进制模式下查看文档。 选择新的一行,然后点击Ctrl+H 。 当你打开替换对话框时,在背景上选择新的替换字符串,然后Ctrl+C复制它,把它粘贴到替换文本的输入中。 然后按照你的意愿进行替换或全部替换。
注意:为新行选择的字符通常显示为0a。 如果文件是Windows格式的,它可能有不同的值。在这种情况下,你可以随时去编辑->;EOL转换->;转换为Unix格式,在替换后再切换到编辑->;EOL转换->;转换为Windows格式。
0a
编辑->;EOL转换->;转换为Unix格式
编辑->;EOL转换->;转换为Windows格式
看来这是一个FAQ,提供的解决方案是。
简单搜索(Ctrl+H),不使用regexp。 你可以打开 "查看/显示行尾"。 或查看/显示全部,然后选择现在的 >.可见换行字符。 可见的换行字符。 然后当 你开始命令一些字符 与换行符相匹配的将是 粘贴到搜索栏中。 匹配 将被替换为 >.字符串,不同于在regex模式下。 字符串,不同于在regex模式下。 字符串,与regex模式不同。 >.字符串,与regex模式不同。 注1: 如果你用 鼠标,从他们前面开始,拖动 到下一行的开始。 拖动到行的末端不会 工作。 拖到下一行的开始。 注意2。 你不能复制和粘贴 他们自己进场。
简单搜索(Ctrl+H),不使用regexp。
你可以打开 "查看/显示行尾"。
或查看/显示全部,然后选择现在的 >.可见换行字符。 可见的换行字符。 然后当
你开始命令一些字符
与换行符相匹配的将是
粘贴到搜索栏中。 匹配
将被替换为 >.字符串,不同于在regex模式下。 字符串,不同于在regex模式下。 字符串,与regex模式不同。 >.字符串,与regex模式不同。 注1: 如果你用
鼠标,从他们前面开始,拖动
到下一行的开始。
拖动到行的末端不会 工作。 拖到下一行的开始。 注意2。 你不能复制和粘贴
他们自己进场。
高级搜索(Ctrl+R),不含regexp。 >.Ctrl+M将插入与换行符匹配的内容。 Ctrl+M将插入与换行符匹配的内容。 它们将被替换字符串所取代。
1:
在替换对话框中,你要将搜索模式设置为"扩展"。 普通或正则表达式模式不会起作用。
然后找到"&r"(或者unix文件只找&n,mac格式文件只找&r),并将替换设置为你想要的。
我在查找/替换窗口中使用正则表达式时运气不太好。
然而,在Notepad++ v4.1.2中却可以使用。
使用"View | Show end of line" 菜单来启用显示行末字符。 回车换行应该显示为一个单一的阴影CRLF '字符')。
选择其中一个CRLF '字符'。 (将光标刚好放在一个前面,按住SHIFT键,然后按一次RIGHT CURSOR键)。
将CRLF字符复制到剪贴板上。
确保你*没有打开查找或查找/替换对话框。
打开查找/替换对话框。 在'查找什么'字段显示剪贴板的内容。 字段显示剪贴板的内容。 在本例中,CRLF字符--显示为2个'框字符'。 (大概它是一个不可打印的字符?)
确保'正则表达式'。 选项是关闭的。
现在你应该可以根据需要进行计数、查找或替换。
形象与CRLF
![在此输入图片描述][1] 。
不含CRLF的图像
![在此输入图片描述][2]
[1]: http://i.stack.imgur.com/WjBZU.png [2]: http://i.stack.imgur.com/p1mxh.png
我发现它的工作方式是使用替换功能,并使用"\n",与"Extended"。 模式。 我使用的是5.8.5版本。
在2013年,v6.13或更高版本,使用。
菜单编辑 → EOL转换 → Windows格式。
使用高级搜索选项(Ctrl
进入查看--> 显示符号-->显示所有字符 // 它为我工作
如果你需要做一个复杂的regexp替换,包括\r\n,你可以通过一个三步法来解决这个限制。
\r/n
#GO#
执行你的regexp,例如从html书签中删除多行ICON="*"→检查regexp,将ICON=.[^"]+.> 替换为>。
ICON="*"
ICON=.[^"]+.> 替换为>
放回r/r/n→检查'Extended',将#GO#替换为r/r/n。
r/r/n
假设它有一个"正则表达式"搜索,寻找 \r\n。 我更喜欢 \r?\n,因为有些文件不使用回车。
编辑:谢谢你的反馈,不管是谁把这个投下去的。 我已经了解到......嗯,什么都没有,因为你没有提供反馈。 为什么这是错的?
我用Notepad++打开文件,分几步做了替换。
将所有"; `r/r/n" 改为"\rn"。
将所有" `rr/n".改为"rr/n" 改为"。 用"代替"。
这样就可以把所有的断点放在它们应该在的地方,并删除那些破坏文件的断点。
这对我来说很有效。
进行这种设置。 菜单->。 查看->。 显示符号->。 取消选中显示行尾
我在NP v6.9中完全做不到这一点。 我发现在Msoft Word(2K)上很简单。
打开文档,进入编辑->替换。
然后在搜索框的底部,点击"更多"。 然后找到"特别"。 按钮,他们有几个东西给你。 对于Dos风格,我用的是"段落"。 一个。 这是windows地一个cr lf对。
要将一行行独立的文档改为一行行,每一行构成逗号分隔列表中的一个条目。
单击"Replace" 选项卡。
在"Find what".条目中填入"/r/n"。 条目中填入"/r/n"。
/r/n
在"替换"处填写"。 条目填上"," 或"、" (根据喜好而定)。
,
、
选中"Extended" 单选按钮。
单击"Replace all" 按钮。
这些步骤将e.g.。
吧
吧台
Baz foo
进入:
foo bar,bar baz,baz foo。
或:(取决于偏好)
福吧,福吧福吧,福吧福吧。
要查找任何一种换行序列,请使用下面的regex结构。
\R
要查找和选择连续的行中断序列,在\R后添加+。 \R+.
+
\R+
确保你开启了正则表达式模式。
[![在此输入图像描述][1]][1] 。
它符合:
U+000DU+000A-
U+000C
FORM FEED
U+0085
NEXT LINE
[1]: https://i.stack.imgur.com/8mhVj.png
也许你可以使用TextFX插件。
在TextFX中,进入textfx编辑→删除空行。
只需在替换字段中用查找和替换的方式进行查找和替换,并在替换字段中留出空白,这样所有的东西就会上升到一行。 然后做一个查找和替换(在我的例子中是用分号),然后用;\n替换。
:) -T&C
[\rn]+
也应该工作更新2012年3月26日,Notepad++ 6.0的发布日期。
OMG,它现在真的可以工作了!!!。
在Notepad++中的PCRE regexp]2!
原答案 2008 (Notepad++ 4.x) - 2009-2010-2011 (Notepad++ 5.x)
事实上没有,它似乎不能与regexp一起工作...
但如果你有 Notepad++ 5.x,你可以使用 'extended'搜索模式并寻找
rr\n
。这确实能找到你所有的CRLF
。(我意识到这是与其他答案相同的答案,但同样,'扩展模式'只适用于Notepad++ 4.9、5.x及以上版本)
从2009年4月起,你在Notepad++网站上有一篇关于这个主题的wiki文章。
"如何替换行尾,从而改变行的布局"。
(由georgiecasey在他/她的以下答案中提到)
一些相关的摘录包括以下的搜索过程。
同一维基还提到了Hex编辑器的替代品。
看来这是一个FAQ,提供的解决方案是。
1:
在替换对话框中,你要将搜索模式设置为"扩展"。 普通或正则表达式模式不会起作用。
然后找到"&r"(或者unix文件只找&n,mac格式文件只找&r),并将替换设置为你想要的。
我在查找/替换窗口中使用正则表达式时运气不太好。
然而,在Notepad++ v4.1.2中却可以使用。
使用"View | Show end of line" 菜单来启用显示行末字符。 回车换行应该显示为一个单一的阴影CRLF '字符')。
选择其中一个CRLF '字符'。 (将光标刚好放在一个前面,按住SHIFT键,然后按一次RIGHT CURSOR键)。
将CRLF字符复制到剪贴板上。
确保你*没有打开查找或查找/替换对话框。
打开查找/替换对话框。 在'查找什么'字段显示剪贴板的内容。 字段显示剪贴板的内容。 在本例中,CRLF字符--显示为2个'框字符'。 (大概它是一个不可打印的字符?)
确保'正则表达式'。 选项是关闭的。
现在你应该可以根据需要进行计数、查找或替换。
形象与CRLF
![在此输入图片描述][1] 。
不含CRLF的图像
![在此输入图片描述][2]
[1]: http://i.stack.imgur.com/WjBZU.png [2]: http://i.stack.imgur.com/p1mxh.png
我发现它的工作方式是使用替换功能,并使用"\n",与"Extended"。 模式。 我使用的是5.8.5版本。
在2013年,v6.13或更高版本,使用。
菜单编辑 → EOL转换 → Windows格式。
使用高级搜索选项(Ctrl
进入查看--> 显示符号-->显示所有字符 // 它为我工作
如果你需要做一个复杂的regexp替换,包括\r\n,你可以通过一个三步法来解决这个限制。
\r/n
,比方说#GO#
→检查'Extended',用#GO#
替换\r/n
。执行你的regexp,例如从html书签中删除多行
ICON="*"
→检查regexp,将ICON=.[^"]+.> 替换为>
。放回r/r/n→检查'Extended',将
#GO#
替换为r/r/n
。假设它有一个"正则表达式"搜索,寻找 \r\n。 我更喜欢 \r?\n,因为有些文件不使用回车。
编辑:谢谢你的反馈,不管是谁把这个投下去的。 我已经了解到......嗯,什么都没有,因为你没有提供反馈。 为什么这是错的?
我用Notepad++打开文件,分几步做了替换。
将所有"; `r/r/n" 改为"\rn"。
将所有" `rr/n".改为"rr/n" 改为"。 用"代替"。
这样就可以把所有的断点放在它们应该在的地方,并删除那些破坏文件的断点。
这对我来说很有效。
进行这种设置。 菜单->。 查看->。 显示符号->。 取消选中显示行尾
我在NP v6.9中完全做不到这一点。 我发现在Msoft Word(2K)上很简单。
打开文档,进入编辑->替换。
然后在搜索框的底部,点击"更多"。 然后找到"特别"。 按钮,他们有几个东西给你。 对于Dos风格,我用的是"段落"。 一个。 这是windows地一个cr lf对。
要将一行行独立的文档改为一行行,每一行构成逗号分隔列表中的一个条目。
单击"Replace" 选项卡。
在"Find what".条目中填入"
/r/n
"。 条目中填入"/r/n
"。在"替换"处填写"。 条目填上"
,
" 或"、
" (根据喜好而定)。选中"Extended" 单选按钮。
单击"Replace all" 按钮。
这些步骤将e.g.。
吧
进入:
或:(取决于偏好)
要查找任何一种换行序列,请使用下面的regex结构。
要查找和选择连续的行中断序列,在
\R
后添加+
。\R+
.确保你开启了正则表达式模式。
[![在此输入图像描述][1]][1] 。
它符合:
U+000DU+000A-
CRLF`序列。U+000C
-FORM FEED
,FF。U+0085
-NEXT LINE
,NEL。[1]: https://i.stack.imgur.com/8mhVj.png
也许你可以使用TextFX插件。
在TextFX中,进入textfx编辑→删除空行。
只需在替换字段中用查找和替换的方式进行查找和替换,并在替换字段中留出空白,这样所有的东西就会上升到一行。 然后做一个查找和替换(在我的例子中是用分号),然后用;\n替换。
:) -T&C