在notepad++中找到CRLF

我如何才能找到/替换所有CR/LF字符在notepad++ ?

我正在寻找一些相当于微软Word中的^p特殊字符。

617051 次浏览

假设它有一个“正则表达式”搜索,寻找\r\n。我更喜欢\r?\n,因为一些文件不使用回车。

编辑:感谢你的反馈,无论谁投了反对票。我了解到……没有,因为你没有提供任何反馈。为什么这是错误的?

[\r\n]+也应该工作

更新2012年3月26日, notepad++ 6.0的发布日期:

天哪,它现在真的有用了!!

PCRE regexp in notepad++


原答案2008 (notepad++ 4.x) - 2009-2010-2011 (notepad++ 5.x)

实际上不,它似乎不能与regexp一起工作…

但是如果你有notepad++ 5。x,你可以使用'扩展'搜索模式并寻找\r\n。它会找到你所有的CRLF

(我意识到这是与其他答案相同的答案,但同样,“扩展模式”仅适用于notepad++ 4.9, 5。X及更多)


自2009年4月以来,你在notepad++网站上有一篇关于这个主题的维基文章:
如何替换行尾,从而改变行布局”。< br > (由georgiecasey在他/她的下面的回答中提到)

一些相关摘要包括以下搜索过程:

简单搜索(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都不匹配。


同一个维基也提到了十六进制编辑器替代方案:

  • 在文档的开头输入新字符串。
  • 然后选择以十六进制模式查看文档
  • 选择其中的一行并点击Ctrl+H
  • 当你有替换对话框时,在后台选择新的替换字符串并Ctrl+C复制它,将其粘贴到替换文本输入中。
  • 然后按照您的意愿替换或全部替换。

注意:新行选择的字符通常显示为0a 如果文件是Windows格式,它可能有不同的值。在这种情况下,你总是可以去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:

  1. 使用"View | Show end of line"菜单启用显示行尾字符。 (回车换行符应该显示为单个阴影CRLF '字符')

  2. 选择一个CRLF“字符”(将光标放在其中一个字符的前面,按住SHIFT键,然后按一次右光标键)。

  3. 复制CRLF字符到剪贴板。

  4. 确保你有查找或查找/替换对话框打开。

  5. 打开查找/替换对话框。 “查找什么”字段显示剪贴板的内容:在本例中,CRLF字符-显示为2个“框字符”(大概是一个不可打印字符?)

  6. 确保“正则表达式”选项是关闭的。

现在您应该能够根据需要进行计数、查找或替换。

使用高级搜索选项(Ctrl + R)并使用键盘快捷键CRLF (Ctrl + )插入回车符。

这似乎是一个常见问题解答,提供的解决方案是:

简单的搜索(Ctrl+H)没有regexp

您可以打开查看/显示行尾 或“查看/显示全部”,并选择“现在” 可见换行符。当 您开始命令一些字符 匹配换行符将为 粘贴到搜索字段。匹配 会被替换吗

注1:如果你用 鼠标,在他们前面开始拖 到下一行的开头。 拖到行尾则不会 工作。< / p >

注2:不能复制粘贴

高级搜索(Ctrl+R)没有regexp

Ctrl+M将插入匹配换行符的内容。它们将被replace字符串替换。

我发现它的工作方式是使用替换功能,并使用“\n”,与“扩展”模式。我使用的是5.8.5版本。

将一个由多行组成的文档改为一行,每行组成逗号分隔的列表中的一个条目:

  1. ctrl+f打开搜索/替换。
  2. 点击“;替换”;选项卡。
  3. 填写“Find what”;带有“__abc0”的条目。
  4. 填写“;Replace with”;,"或“;, "(取决于个人喜好)。
  5. 取消勾选“匹配整个单词”;复选框(逃避逻辑的重要位)。
  6. 检查&;extended &;单选按钮。
  7. 点击“全部替换”;按钮。

这些步骤转换为,例如

foo酒吧

酒吧巴兹

巴兹foo

成:

Foo bar,bar baz,baz Foo

或者:(取决于偏好)

Foo bar, bar baz, baz Foo

如果你需要做一个复杂的regexp替换,包括\r\n,你可以通过三步方法来解决这个限制:

  1. 将所有\r\n替换为一个标签,例如#GO#→检查'Extended',将\r\n替换为#GO#
  2. 执行regexp,例如从html书签中删除多行ICON="*"→检查regexp,替换ICON=.[^"]+.> by >
  3. 放回\r\n→检查'Extended',将#GO#替换为\r\n

我在notepad++中打开文件,并在几个步骤中进行替换:

  1. 将所有“\r\n”替换为“\r\n”
  2. 替换所有”;“\r\n”和“\r\n”
  3. 将所有“\r\n”替换为“”

这将把所有的断点放在它们应该在的位置,并删除那些破坏文件的断点。

这对我很管用。

也许你可以使用TextFX插件

在TextFX中,点击TextFX编辑→删除空行

在2013年v6.13或更高版本中,使用:

菜单编辑生物转化Windows格式

CRLF图像

enter image description here


不含CRLF的图像

enter image description here

只需在find中执行\r,并在replace字段中使用空白进行替换,这样所有内容都将上升到一行。然后执行查找和替换(在我的例子中是分号)并替换为;\n

< p >:) -T& C < / p >

做这个设置。菜单->视图->显示符号->取消勾选显示行结束

我在NP v6.9中完全无法做到这一点。 我发现用微软Word (2K)就够简单的了

打开文档,点击编辑->replace。

然后在搜索框的底部,点击“更多”,然后找到“特别”按钮,他们有一些东西给你。对于Dos样式,我使用“段落”样式。这是一双橱窗里的cr。

进入查看——>显示符号——>显示所有字符 //它为我工作

找到任意一种换行序列使用以下正则表达式结构:

\R

要查找并选择连续换行序列,在\R: \R+之后添加+

确保你打开了正则表达式模式:

enter image description here

它匹配:

  • U+000DU+000A -CRLF的序列
  • __abc0 - __abc1, __abc2
  • __abc0 - __abc1, __abc2
  • __abc0 - __abc1, __abc2
  • __abc0 - __abc1, __abc2
  • __abc0 - __abc1, __abc2
  • __abc0 - __abc1
  • __abc0 - __abc1