在 Notepad++ 中将每个第 n 个字符替换为新行

在 Notepad++ 中将每个第 n 个字符替换为新行

我有一个用管道分隔的字符串,NAME|VALUE看起来像这样......

Name1|Value1|Name2|Value2|Name3|Value3

我想要做的是用|新行替换每个第二个实例,以便得到类似这样的内容......

Name1|Value1
Name2|Value2
Name3|Value3

我的问题不是换行符,因为我知道我可以用\r\n它来代替它,而是只替换每个第二个实例的正则表达式部分|

答案1

查找:([^\|]*\|[^\|]*)\|
替换为:\1\n

答案2

我想用新行替换每个第二个实例 |

  • 菜单“搜索”>“替换”(或Ctrl+ H

  • 将“查找内容”设置为(.*?\|.*?)[\|]

  • 将“替换为”设置为\1\r\n

  • 启用“正则表达式”

  • 点击“全部替换”

    在此处输入图片描述

Name1|Value1|Name2|Value2|Name3|Value3

Name1|Value1
Name2|Value2
Name3|Value3

笔记:

  • 以上内容假设您正在使用 Windows EOL 编辑文本文件\r\n

  • 如果您使用具有不同 EOL 的文件,您可以使用菜单“编辑”>“EOL 转换”将它们转换为 Windows EOL。

  • 如果您没有使用 Windows EOL,并且不想转换它们,请改用以下命令:

    • 对于 Unix/OS X EOL,请使用\n代替\r\n

    • \r对于\r\nMac OS(最高版本 9)EOL,请使用


进一步阅读

答案3

这试图展示如何替换每一个第 N 个字符并添加换行符,而无需复制粘贴序列的部分内容。在这种情况下,需要一个数字来告诉引擎预计重复多少次。在此示例中,我想将每 13 次出现的字符替换@为换行符。您可以看到一个捕获组中的第 13 个字符之前的 12 (13-1) 次非捕获组重复以及剩余文本@。然后是匹配但未捕获的第 13 个字符,@它将被替换为\r\n

找什么: ((?:.*?\@){12}.*?)\@
用。。。来代替: $1\r\n
查看环绕
搜索模式=正则表达式
全部替换

字符@应更改为您的实际分隔符(在模式中重复两次)。例如,如果您的分隔符是|,则您的模式将是((?:.*?\|){12}.*?)\|
此外,数字12应替换为您的值(N-1)。

相关内容