我如何才能找到/替换所有CR/LF字符在notepad++ ?
我正在寻找一些相当于微软Word中的^p特殊字符。
假设它有一个“正则表达式”搜索,寻找\r\n。我更喜欢\r?\n,因为一些文件不使用回车。
编辑:感谢你的反馈,无论谁投了反对票。我了解到……没有,因为你没有提供任何反馈。为什么这是错误的?
[\r\n]+也应该工作
[\r\n]+
更新2012年3月26日, notepad++ 6.0的发布日期:
天哪,它现在真的有用了!!
原答案2008 (notepad++ 4.x) - 2009-2010-2011 (notepad++ 5.x)
实际上不,它似乎不能与regexp一起工作…
但是如果你有notepad++ 5。x,你可以使用'扩展'搜索模式并寻找\r\n。它会找到你所有的CRLF。
\r\n
CRLF
(我意识到这是与其他答案相同的答案,但同样,“扩展模式”仅适用于notepad++ 4.9, 5。X及更多)
一些相关摘要包括以下搜索过程:
简单搜索(Ctrl+F),搜索模式= Normal 你可以在编辑窗口中选择一个EOL。 只需将光标移动到行尾,并键入转变+正确的 Arrow。 或者,要用鼠标选择EOL,只需从行尾开始,然后拖动到下一行的开头;将EOL拖到右边是无效的。 您可以手动复制EOL并将其粘贴到Unix文件(LF-only)的字段中 简单搜索(Ctrl+F),搜索模式=扩展 "Extended"选项将\n和\r作为可以匹配的字符 与普通搜索模式一样,notepad++正在查找确切的字符 在unix格式的文件中搜索\r将一无所获,但搜索\n将一无所获。类似地,macintosh格式的文件将包含\r而不包含\n. 简单搜索(Ctrl+F),搜索模式=正则表达式 正则表达式使用字符^和$将匹配字符串锚定在行首或行尾。例如,搜索return;$会发现出现了“return;”,在同一行上没有后续文本。锚字符在所有文件格式中工作一致 ”。'点元字符不匹配行结束符 [在notepad++ 5.8.5中测试]:使用显式__ABC0或\n的正则表达式搜索不起作用(与闪烁文档相反). 也不搜索显式(粘贴的)LF,或在选择EOL时放置在字段中的(不可见的)EOL字符。 高级搜索(Ctrl+R)没有regexp Ctrl+米将插入匹配换行符的内容。它们将被replace字符串替换 我推荐这个方法是最可靠的,除非你真的需要使用regex. 例如,要删除双行距文件中的每隔一秒换行符,在搜索字符串框中输入Ctrl+米两次,在替换字符串框中输入一次 高级搜索(Ctrl+R) Regexp。 Ctrl+米, $和\r\n都不匹配。
Normal
你可以在编辑窗口中选择一个EOL。
EOL
LF
"Extended"选项将\n和\r作为可以匹配的字符 与普通搜索模式一样,notepad++正在查找确切的字符 在unix格式的文件中搜索\r将一无所获,但搜索\n将一无所获。类似地,macintosh格式的文件将包含\r而不包含\n.
\n
\r
^
$
return;$
[在notepad++ 5.8.5中测试]:使用显式__ABC0或\n的正则表达式搜索不起作用(与闪烁文档相反). 也不搜索显式(粘贴的)LF,或在选择EOL时放置在字段中的(不可见的)EOL字符。 高级搜索(Ctrl+R)没有regexp
Ctrl+米将插入匹配换行符的内容。它们将被replace字符串替换 我推荐这个方法是最可靠的,除非你真的需要使用regex. 例如,要删除双行距文件中的每隔一秒换行符,在搜索字符串框中输入Ctrl+米两次,在替换字符串框中输入一次
Ctrl+米, $和\r\n都不匹配。
同一个维基也提到了十六进制编辑器替代方案:
在文档的开头输入新字符串。 然后选择以十六进制模式查看文档。 选择其中的一行并点击Ctrl+H。 当你有替换对话框时,在后台选择新的替换字符串并Ctrl+C复制它,将其粘贴到替换文本输入中。 然后按照您的意愿替换或全部替换。 注意:新行选择的字符通常显示为0a 如果文件是Windows格式,它可能有不同的值。在这种情况下,你总是可以去Edit -> EOL Conversion -> Convert to Unix Format,并在替换后切换回Edit -> EOL Conversion -> Convert to Windows Format.
注意:新行选择的字符通常显示为0a 如果文件是Windows格式,它可能有不同的值。在这种情况下,你总是可以去Edit -> EOL Conversion -> Convert to Unix Format,并在替换后切换回Edit -> EOL Conversion -> Convert to Windows Format.
0a
Edit -> EOL Conversion -> Convert to Unix Format
Edit -> EOL Conversion -> Convert to Windows Format
在替换对话框中,您要将搜索模式设置为“扩展”。正常或正则表达式模式不工作。
然后只需要找到"\r\n"(对于unix文件只需要\n,对于mac格式文件只需要\r),然后将替换值设置为你想要的任何值。
我在查找/替换窗口中使用\r\n个正则表达式时运气不太好。
然而,这适用于notepad++ v4.1.2:
使用"View | Show end of line"菜单启用显示行尾字符。 (回车换行符应该显示为单个阴影CRLF '字符')
选择一个CRLF“字符”(将光标放在其中一个字符的前面,按住SHIFT键,然后按一次右光标键)。
复制CRLF字符到剪贴板。
确保你不有查找或查找/替换对话框打开。
打开查找/替换对话框。 “查找什么”字段显示剪贴板的内容:在本例中,CRLF字符-显示为2个“框字符”(大概是一个不可打印字符?)
确保“正则表达式”选项是关闭的。
现在您应该能够根据需要进行计数、查找或替换。
使用高级搜索选项(Ctrl + R)并使用键盘快捷键CRLF (Ctrl + 米)插入回车符。
这似乎是一个常见问题解答,提供的解决方案是:
简单的搜索(Ctrl+H)没有regexp 您可以打开查看/显示行尾 或“查看/显示全部”,并选择“现在” 可见换行符。当 您开始命令一些字符 匹配换行符将为 粘贴到搜索字段。匹配 会被替换吗 注1:如果你用 鼠标,在他们前面开始拖 到下一行的开头。 拖到行尾则不会 工作。< / p > 注2:不能复制粘贴 高级搜索(Ctrl+R)没有regexp Ctrl+M将插入匹配换行符的内容。它们将被replace字符串替换。
简单的搜索(Ctrl+H)没有regexp
您可以打开查看/显示行尾 或“查看/显示全部”,并选择“现在” 可见换行符。当 您开始命令一些字符 匹配换行符将为 粘贴到搜索字段。匹配 会被替换吗
注1:如果你用 鼠标,在他们前面开始拖 到下一行的开头。 拖到行尾则不会 工作。< / p >
注2:不能复制粘贴
高级搜索(Ctrl+R)没有regexp
Ctrl+M将插入匹配换行符的内容。它们将被replace字符串替换。
我发现它的工作方式是使用替换功能,并使用“\n”,与“扩展”模式。我使用的是5.8.5版本。
将一个由多行组成的文档改为一行,每行组成逗号分隔的列表中的一个条目:
,
这些步骤转换为,例如
foo酒吧 酒吧巴兹 巴兹foo
foo酒吧
酒吧巴兹
巴兹foo
成:
Foo bar,bar baz,baz Foo
或者:(取决于偏好)
Foo bar, bar baz, baz Foo
如果你需要做一个复杂的regexp替换,包括\r\n,你可以通过三步方法来解决这个限制:
#GO#
ICON="*"
ICON=.[^"]+.> by >
我在notepad++中打开文件,并在几个步骤中进行替换:
这将把所有的断点放在它们应该在的位置,并删除那些破坏文件的断点。
这对我很管用。
也许你可以使用TextFX插件
在TextFX中,点击TextFX编辑→删除空行
在2013年v6.13或更高版本中,使用:
菜单编辑→生物转化→Windows格式。
CRLF图像
不含CRLF的图像
只需在find中执行\r,并在replace字段中使用空白进行替换,这样所有内容都将上升到一行。然后执行查找和替换(在我的例子中是分号)并替换为;\n
做这个设置。菜单->视图->显示符号->取消勾选显示行结束
打开文档,点击编辑->replace。
然后在搜索框的底部,点击“更多”,然后找到“特别”按钮,他们有一些东西给你。对于Dos样式,我使用“段落”样式。这是一双橱窗里的cr。
进入查看——>显示符号——>显示所有字符 //它为我工作
找到任意一种换行序列使用以下正则表达式结构:
\R
要查找并选择连续换行序列,在\R: \R+之后添加+。
\R+
+
确保你打开了正则表达式模式:
它匹配:
U+000DU+000A -