Notepad ++使用换行查找和替换字符串


212

考虑具有要查找和替换的特定字符串的场景。您希望将其替换为包含换行符(或字符序列)的新字符串。

abc123 xyz456-blah
fsafd23 xyz456-green
89hjkf23 xyz456-red
afdsa23 xyz456-yellow
abaac123 xyz456-orange

在上面的场景中,我想找到“ xyz”并回车符/换行符替换空格。

结果如下:

abc123
xyz456-blah
fsafd23
xyz456-green
89hjkf23
xyz456-red
   ︙

等等...

问题:如何使用Notepad ++轻松实现这一目标?您是否建议使用其他工具轻松执行此命令?

Answers:


279

Notepad ++会做得很好。

搜索字符串:

 XYZ
注意前面的空间xyz

替换字符串:

\ r \ nxyz

您还需要将“搜索模式”设置“扩展”(“ 替换”对话框中的左下方组框),以便Notepad ++能够使用转义码。


一些背景: “\ r \ n”是回车的转义码,是Windows中新行的标准。Unix风格的系统只使用\ n(换行符)。大多数IDE,包括Notepad ++,都会理解这两种样式并用新行描述每种样式,但核心Windows实用程序并不理解它等同于\ r \ n,所以后者通常是最合适的,如果文件是为了用于Windows环境。


2
\ r \ n = Windows换行语法。但是,对于普通旧记事本以外的所有内容,它只接受\ n换行(这也更常规)。
Macha

3
你的短语“更传统”是误导性的。“\ r \ n”是Windows上的标准。只是很多编辑器和IDE碰巧认识到以“\ n”结尾的Unix / Linux标准行并相应地显示文档。“\ n”没有任何内容可以使它更具传统性。
Brian Lacy 2010年

说实话,Win / DOS版本对我来说更有意义。“\ r”表示“回车,或'将托架/光标返回到行的开头'”,“\ n”表示“将托架/光标向前推进一行”。当然,Unix出现在20年前,所以我想在这个意义上是微软打破了标准。
Brian Lacy 2010年

7
这不会起作用,除非你设置搜索模式,如另一个答案中所指定:superuser.com/questions/34451 / ...
codeulike 2011年

7
如果您尝试用实际的新行替换文字字符串“\ r \ n”,我必须执行以下操作:将搜索模式设置为正常,使用***查找/替换\ r \ n。然后将搜索模式设置为Extended,使用\ r \ n找到/替换***。
goku_da_master 2014年

61

在Notepad ++中,它非常容易......

  • 发现:xyz
  • 替换为:\ n


  • 搜索模式:扩展(\ n,\ t等)

诀窍是设置搜索模式。


1
这个答案对我有用,被接受的没有。Ver 5.8.6
bdwakefield 2011年

同样在这里接受的答案没有指定使用扩展模式..
Andy

为什么不\r\n(而不是\n)?
彼得·莫特森

5

当我无法直接输入文本字段(例如制表符和换行符)的S&Ring字符时,我有点作弊。找到已包含该字符的文档中的某个位置,然后将其复制并粘贴到替换字段中。

因此,在您的示例中,从一行的开头开始,单击,拖动到前一行的最后一行,复制该行,然后将其粘贴到“替换”对话框中。


5

在“替换”对话框中,确保在“搜索模式”下选择了“扩展”。然后输入查找框输入“xyz”并替换为“\ n”。


1
为什么不\r\n(而不是\n)?
彼得·莫特森

2

对于Notepad ++,将搜索模式更改为Extended,然后在Replace with字段中使用\ n


1
为什么不\r\n(而不是\n)?
彼得·莫特森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.