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

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


当前回答

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

其他回答

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

将所有“\r\n”替换为“\r\n” 替换所有”;“\r\n”和“\r\n” 将所有“\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。

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


自2009年4月以来,在notepad++站点上有一篇关于这个主题的wiki文章: 如何替换行尾,从而改变行布局。 (georgiecasey在他/她的回答中提到)

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

Simple search (Ctrl+F), Search Mode = Normal You can select an EOL in the editing window. Just move the cursor to the end of the line, and type Shift+Right Arrow. or, to select EOL with the mouse, start just at the line end and drag to the start of the next line; dragging to the right of the EOL won't work. You can manually copy the EOL and paste it into the field for Unix files (LF-only). Simple search (Ctrl+F), Search Mode = Extended The "Extended" option shows \n and \r as characters that could be matched. As with the Normal search mode, Notepad++ is looking for the exact character. Searching for \r in a UNIX-format file will not find anything, but searching for \n will. Similarly, a Macintosh-format file will contain \r but not \n. Simple search (Ctrl+F), Search Mode = Regular expression Regular expressions use the characters ^ and $ to anchor the match string to the beginning or end of the line. For instance, searching for return;$ will find occurrences of "return;" that occur with no subsequent text on that same line. The anchor characters work identically in all file formats. The '.' dot metacharacter does not match line endings. [Tested in Notepad++ 5.8.5]: a regular expression search with an explicit \r or \n does not work (contrary to the Scintilla documentation). Neither does a search on an explicit (pasted) LF, or on the (invisible) EOL characters placed in the field when an EOL is selected. Advanced search (Ctrl+R) without regexp Ctrl+M will insert something that matches newlines. They will be replaced by the replace string. I recommend this method as the most reliable, unless you really need to use regex. As an example, to remove every second newline in a double spaced file, enter Ctrl+M twice in the search string box, and once in the replace string box. Advanced search (Ctrl+R) with Regexp. Neither Ctrl+M, $ nor \r\n are matched.


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

Type the new string at the beginning of the document. Then select to view the document in Hex mode. Select one of the new lines and hit Ctrl+H. While you have the Replace dialog box up, select on the background the new replacement string and Ctrl+C copy it to paste it in the Replace with text input. Then Replace or Replace All as you wish. Note: the character selected for new line usually appears as 0a. It may have a different value if the file is in Windows Format. In that case you can always go to Edit -> EOL Conversion -> Convert to Unix Format, and after the replacement switch it back and Edit -> EOL Conversion -> Convert to Windows Format.

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

按Ctrl +f打开搜索/替换。 点击“替换”页签。 用“\r\n”填充“Find what”条目。 用“,”或“,”(取决于偏好)填充“Replace with”条目。 取消选中“匹配整个单词”复选框(回避逻辑的重要部分)。 检查“扩展”单选按钮。 点击“全部替换”按钮。

这些步骤转向。

foo酒吧 酒吧巴兹 巴兹foo

成:

Foo bar,bar baz,baz Foo

或者:(取决于个人喜好)

Foo bar, bar baz, baz Foo