在记事本++中查找CRLF
如何find/replace记事本++中的所有CRLF字符? 在Word中寻找相当于^ p特殊字符的东西。
[\r\n]+
应该工作
Notepad ++ 6.0 2012年3月26日更新发布date:
OMG,它现在确实工作了!
原始答案2008(Notepad ++ 4.x) – 2009-2010-2011(Notepad ++ 5.x)
其实不,它似乎并不适用于正则expression式…
但是,如果您有Notepad ++ 5.x,则可以使用“ 扩展 ”search模式并查找\r\n
。 那确实find了你所有的CRLF
。
(我意识到这是相同的答案比其他人,但再次,'扩展模式'只有Notepad ++ 4.9,5.x和更多)
自2009年4月以来,您在Notepad ++网站上有关于此主题的wiki文章:
“ 如何replace线端,从而改变线的布局 ”。
(在下面的答案中由georgiecasey提到)
一些相关的摘录包括以下search过程:
简单search( Ctrl + F ),search模式=
Normal
您可以在编辑窗口中select一个
EOL
。
- 只要将光标移动到行的末尾,然后inputShift + 向右箭头。
- 或者,使用鼠标select
EOL
,只需在行结束处拖动到下一行的起始处; 拖到EOL
的右边将不起作用。 您可以手动复制EOL
并将其粘贴到Unix文件的字段(仅限LF
)。简单search(Ctrl + F),search模式=扩展
“扩展”选项显示
\n
和\r
可以匹配的字符。
与普通search模式一样,Notepad ++正在寻找确切的字符。
在UNIX格式的文件中search\r
将不会find任何内容,但会search\n
。 同样,Macintosh格式的文件将包含\r
而不是\n
。简单search(Ctrl + F),search模式=正则expression式
正则expression式使用字符
^
和$
将匹配string锚定到行的开头或结尾。 例如,searchreturn;$
会发现“返回”; 在同一行上没有后续的文本。 主angular字符在所有文件格式中都是相同的。
'。' 点元字符不符合行尾。[在Notepad ++ 5.8.5中testing]: 使用显式
\r
或\n
进行正则expression式search不起作用(与Scintilla文档相反) 。
在selectEOL时,也不会在显示的(粘贴的)LF上或在字段中放置的(不可见的)EOL字符上进行search。 高级search( Ctrl + R )没有正则expression式Ctrl + M将插入与换行符匹配的内容。 它们将被replacestringreplace。
我推荐这个方法是最可靠的,除非你确实需要使用正则expression式。
例如,要删除双倍间隔文件中的每隔一行换行,请在searchstring框中inputCtrl + M两次,然后在replacestring框中input一次。高级search( Ctrl + R )与正则expression式。
Ctrl + M ,
$
和\r\n
都不匹配。
同样的wiki也提到了hex编辑器的select :
- 在文档的开头input新的string。
- 然后select以hex模式查看文档 。
- select一个新行,然后按Ctrl + H。
- 在“replace”对话框中,在背景上select新的replacestring,并按Ctrl + C将其复制,以将其粘贴到“replace为文本”input框中。
- 然后根据需要replace或replace全部。
注意:为新行select的字符通常显示为
0a
。
如果文件是Windows格式,它可能会有不同的值。 在这种情况下,您可以随时进入Edit -> EOL Conversion -> Convert to Unix Format
,replace后切换回来,然后Edit -> EOL Conversion -> Convert to Windows Format
。
看来这是一个FAQ ,提供的解决scheme是:
简单的search(Ctrl + H)没有正则expression式
您可以打开查看/显示行尾或查看/全部显示,然后select现在可见的换行符。 然后当你启动命令时,一些匹配换行符的字符将被粘贴到search字段中。 与正则expression式模式不同,匹配将replace为replacestring。
注1:如果您用鼠标select它们,请在它们之前开始并拖动到下一行的开头。 拖动到该行的结尾将不起作用。
注2:您不能复制并粘贴到自己的领域。
高级search(Ctrl + R)没有正则expression式
Ctrl + M将插入与换行符匹配的内容。 它们将被replacestringreplace。
在“replace”对话框中,您要将search模式设置为“扩展”。 正常或正则expression式模式不会工作。
然后find“\ r \ n”(或者\ n对于unix文件或\ r对于mac格式文件),并将replace设置为任何你想要的。
从查找/replace窗口input\ r \ n正则expression式,我没有太多的运气。
但是,这在Notepad ++ v4.1.2中可用:
-
使用“View | Show end of line”菜单可以显示行尾字符。 (回车换行应显示为单个着色的CRLF“字符”。)
-
select一个CRLF'字符'(将光标放在一个之前,按住SHIFT键,然后按一下RIGHT CURSOR键)。
-
将CRLF字符复制到剪贴板。
-
确保您没有find或find/replace对话框打开。
-
打开查找/replace对话框。 “查找内容”字段显示了剪贴板的内容:在这种情况下,CRLF字符 – 显示为2个“方块字符”(可能是不可打印的字符?)
-
确保“正则expression式”选项closures。
现在,您应该能够根据需要进行计数,查找或replace。
我发现它的工作方式是使用replacefunction,并使用“\ n”和“扩展”模式。 我正在使用版本5.8.5。
图像与CRLF
没有CRLF的图像
在2013,v6.13或更高版本中,请使用:
edit/EOL Conversion/Windows Format
假设它有一个“正则expression式”search,请查找\ r \ n。 我更喜欢\ r?\ n,因为有些文件不使用回车符。
编辑:感谢您的反馈,谁投了下来。 我已经了解到…呃,没有什么,因为你没有提供任何反馈。 为什么这是错的?
使用高级search选项(ctrl-R)并使用CRLF(ctrl-M)的键盘快捷方式插入回车符。
如果您需要执行复杂的正则expression式replace(包括\ r \ n),则可以通过三个步骤来解决方法限制:
- 用标签replace所有的
\r\n
,让我们说#GO#
– >勾选'Extended',用#GO#
replace\r\n
- 执行你的正则expression式,例如从html书签中删除多行
ICON="*"
– >检查正则expression式,用>replaceICON=.[^"]+.> by >
- 放回\ r \ n
– >选中'Extended',用#GO#
\r\n
replace#GO#
我用记事本++打开文件,并在几个步骤做了replace
- 将所有“\ r \ n”replace为“\ r \ n”
- 将所有“; \ r \ n”replace为“\ r \ n”
- 用“”replace所有“\ r \ n”
这将所有的rest,他们应该是,并删除那些分手的文件。
它为我工作,我希望它可以帮助你:)
也许你可以使用TextFX插件
在TextFX中进入textfx编辑 – >删除空白行
要将单独行的文档更改为单行,每行在逗号分隔列表中形成一个条目:
- 按Ctrl + F打开search/replace。
- 点击“replace”标签。
- 使用“
\r\n
”填写“查找内容”条目。 - 用“
,
”或“,
”(取决于偏好)填写“replace为”条目。 - 取消勾选“全字匹配”checkbox (不含逻辑的重要位)。
- 检查“扩展”单选button。
- 点击“全部replace”button。
这些步骤转向例如
foo吧
酒吧巴兹
巴兹富
成:
foo吧,bar baz,baz foo
或:(根据偏好)
foo吧,bar baz,baz foo
只要做一个\ rfind并replace一个空白在replace字段,所以一切都上升到一行。 然后做一个查找和replace(在我的情况下通过分号)并replace; \ n
🙂 -T&C
进行此设置。 菜单 – >查看 – >显示符号 – >取消选中显示行结束