考虑以下情形:您有一个要查找和替换的特定字符串。您想用包含换行符(或字符序列)的新字符串替换它。

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
   ︙


etc ...

问题:您如何最轻松地使用Notepad ++做到这一点?您是否建议使用其他工具轻松执行此命令?

#1 楼

使用Notepad ++即可。

搜索字符串:
 xyz
请注意xyz前面的空格。

替换字符串:
\r\nxyz


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


某些背景:“ \ r \ n”是回车的转义代码,这是Windows中新行的标准。 Unix风格的系统仅使用\ n(换行符)。大多数IDE(包括Notepad ++)将理解这两种样式并使用换行符来描绘它们,但是核心Windows实用程序不理解\ n等同于\ r \ n,因此,如果文件旨在用于\ r \ n,则后者通常是最合适的在Windows环境中使用。

评论


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

– Macha
09年9月2日在18:09

您所说的“更传统”是令人误解的。 “ \ r \ n”是Windows上的标准。只是许多编辑器和IDE碰巧识别了以“ \ n”结尾的Unix / Linux标准行,并相应地显示了文档。 “ \ n”没有什么比它更传统的了。

– Brian Bacy
2010-11-12 20:44

老实说,Win / DOS版本对我来说更有意义。 “ \ r”表示“回车,或'将回车/光标返回到行的开头'”,而“ \ n”表示“将回车/光标向前移动一行”。当然,Unix诞生于20年前,所以从这个意义上讲,我猜想是微软打破了标准。

– Brian Bacy
2010年11月12日20:49

除非您按照其他答案中的指定设置了搜索模式,否则这将无法工作。superuser.com/questions/34451/…

– codeulike
2011年8月19日在15:49

如果要用实际的新行替换文字字符串“ \ r \ n”,则必须执行以下操作:将搜索模式设置为normal,用***查找/替换\ r \ n。然后将搜索模式设置为扩展,用\ r \ n查找/替换***。

– goku_da_master
2014年5月28日17:38

#2 楼

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


查找:xyz
替换为:\ n




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

诀窍是设置搜索模式。

评论


这个答案对我有用,被接受却没有。版本5.8.6

–bdwakefield
2011年5月19日23:53

是的,这里没有使用扩展模式指定接受的答案。

–安迪
2011年11月18日在8:17

为什么不\ r \ n(而不是\ n)呢?

– Peter Mortensen
18年6月11日在7:47

#3 楼

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

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

#4 楼

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

评论


为什么不\ r \ n(而不是\ n)呢?

– Peter Mortensen
18年6月11日在7:47

#5 楼

对于Notepad ++,将搜索模式更改为“扩展”,然后在“替换为”字段中使用\ n。

评论


为什么不\ r \ n(而不是\ n)呢?

– Peter Mortensen
18年6月11日在7:47