我如何才能找到/替换所有CR/LF字符在notepad++ ?
我正在寻找一些相当于微软Word中的^p特殊字符。
我如何才能找到/替换所有CR/LF字符在notepad++ ?
我正在寻找一些相当于微软Word中的^p特殊字符。
当前回答
我在NP v6.9中完全无法做到这一点。 我发现用微软的Word (2K)软件就足够简单了。
打开文档,点击编辑->replace。
然后在搜索框的底部,点击“更多”,然后找到“特别”按钮,他们有一些东西给你。对于Dos样式,我使用“段落”样式。这是一双橱窗里的cr。
其他回答
我发现它的工作方式是使用替换功能,并使用“\n”,与“扩展”模式。我使用的是5.8.5版本。
如果你需要做一个复杂的regexp替换,包括\r\n,你可以通过三步方法来解决这个限制:
将所有的\r\n替换为一个标签,例如#GO#→检查'Extended',将\r\n替换为#GO# 执行regexp,例如从html书签中删除多行ICON="*"→检查regexp,替换ICON=.[^"]+。> by > 返回\r\n→勾选“扩展”,将#GO#替换为\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.
我在notepad++中打开文件,并在几个步骤中进行替换:
将所有“\r\n”替换为“\r\n” 替换所有”;“\r\n”和“\r\n” 将所有“\r\n”替换为“”
这将把所有的断点放在它们应该在的位置,并删除那些破坏文件的断点。
这对我很管用。
假设它有一个“正则表达式”搜索,寻找\r\n。我更喜欢\r?\n,因为一些文件不使用回车。
编辑:感谢你的反馈,无论谁投了反对票。我了解到……没有,因为你没有提供任何反馈。为什么这是错误的?