Notepad++:如何用逗号分隔符替换换行符?

208

我有一个Notepad++问题。

如何在Notepad++ 中处理以下单词(它们在不同的行上)

Apples
Apricots
Pear
Avocados
Bananas

并将它们转换为一个带有每个段落末尾逗号的段落?像这样:

Apples, Apricots, Pear, Avocados, Bananas
9个回答

383

打开查找和替换对话框(按下CTRL+H)。

然后在底部的“搜索模式”部分中选择正则表达式

查找内容字段中输入:[\r\n]+

替换为字段中输入:,

逗号后面有一个空格。

这也将替换掉类似以下的行:

Apples

Apricots
Pear

Avocados
Bananas

当有空行时。

如果您的行末有空格,则应首先将其删除。 最简单的方法是

EDIT -> Blank Operations -> Trim Trailing Space

或者

TextFX -> TextFX Edit -> Trim trailing spaces

请确保将搜索模式设置为"正则表达式"。


如果行末有空格,可以使用 _*[\r\n]+ 进行匹配。为了处理被转换成多余逗号的空白行,你可以使用正则表达式搜索 ,_[,_]+ 并将其替换为 ,_。另外,TextFx软件包有一个删除空行的命令,在添加逗号之前可以使用。(请注意,在这些代码块中,将下划线更改为空格。) - AdrianHHH
2
这对我不起作用:我看到“0个出现被替换了”。 - Iain Samuel McLean Elder
3
@IainElder,搜索模式必须被设置为“正则表达式”而不是“正常”或“扩展”。 - Scott Lawrence
我得到了与Iain相同的结果。 - dhochee
1
这刚刚节省了我10分钟。 - Høgsdal
显示剩余2条评论

39

以下是我在Notepad ++中使用类似字符串列表时的解决方法,不需要任何宏或其他东西:

  1. 点击 编辑 -> 空白操作 -> 行尾到空格 [现在所有项目都应该在单行中,用"空格"分隔开]

  2. 选择任何一个“空格”并进行查找替换 (用",")


简单而优雅,很好。 - reggaeguitar
@trishul 真不错。 - himanshupareek66
非常简单的解决方案 - Nitin Garg

37

fapDaddy的回答使用宏指引我朝正确的方向。

下面是确切可行的步骤:

  1. 将光标放在第一个数据项之后。 enter image description here

  2. 在菜单中点击“宏 > 开始录制”。 enter image description here

  3. 键入以下序列:逗号空格删除结束enter image description here

  4. 在菜单中点击“宏 > 停止录制”。 enter image description here

  5. 在菜单中点击“宏 > 运行多次宏...” enter image description here

  6. 点击“运行到文件结尾”并点击“运行”。 enter image description here

  7. 删除任何尾随字符。 enter image description here

  8. 完成!

enter image description here


6
处理数千个数据项时,这种方法速度较慢。 - Iain Samuel McLean Elder
非常好的回答。谢谢 :) - Peter T.
这是非常有用的信息,在许多类似的情况下都会派上用场。谢谢! - Moin
感谢分享这些信息。很有趣。 - ironman

16

对于Notepad++ 5.9版本

  1. 按下Ctrl+H
  2. 选择搜索模式扩展(\n, \r, \t, \o, \x...)
  3. 输入查找内容:\r\n
  4. 输入替换为:,
  5. Replace_All即可得到所需结果。

3
这个答案重复了已被接受的答案,并且这个答案涉及到 Notepad++ 的一个过时版本,现在已经有 7.4.x 版本可用。欢迎来到 Stack Overflow,但请确保你的回答提供新信息或者新见解。重复现有的答案是没有用处的。 - AdrianHHH
对于较新版本的npp,这是更好的方法。 - nurdyguy
这是最简单的答案。我不应该进入正则表达式模式,只是为了用逗号替换换行符。N++实际上可以正确地工作,而其他编辑器将“\n”解释为回车和换行符,这让我一开始感到困惑。 - Mageician

11

一个使用\s+的正则表达式匹配可以解决我的问题:

输入图像描述


顺便说一句:在我看来,使用 $^ 进行正则表达式匹配应该可以工作,但实际上它会匹配 ^$ - user3673
在你的屏幕截图中,使用正则表达式选项上方的“扩展”选项实际上是实现这一点最简单的方法。 - nurdyguy

5
在“宏”选项卡下,在苹果后面放置光标,选择开始录制。输入逗号,字符和空格 字符,按下End键,在宏选项卡下,选择停止录制
按Ctrl+Shift+P进行单次播放。

谢谢你的提示。 如果我有5000多个单词怎么办?我需要为它们中的每一个单独运行宏吗? 有更简单的方法吗? - user2231530
如果将来需要执行类似的任务,您可能希望为此编写一个脚本。最简单的方法可能只是转到宏选项卡并选择多次运行宏。这样可以在几秒钟内完成。 - viclim
+1 你的回答指引了我正确的方向。在我的回答中,我详细记录了对我有效的方法。 - Iain Samuel McLean Elder

3
这可能听起来很奇怪,但您可以通过复制整个文本并将其粘贴到Firefox搜索栏中,然后重新将其粘贴到Notepad ++中来删除下一行。
步骤1: step 1 步骤2: step 2

1
请改进这个答案。图片链接没有用处。 - Drew

3

使用Chrome浏览器的搜索栏

1-按下CTRLF
2-将复制的文本粘贴到搜索栏
3-按下CTRLA键,然后再按下CTRLC键从搜索中再次复制文本
4-粘贴到Notepad++
5-用','替换'space'

1-click for image
2-click for image


0
你可以使用ConyEdit(一个插件)的命令行cc.rnl ', '来将换行符替换为你想要的内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接