我有一个用管道分隔的字符串,NAME|VALUE
看起来像这样......
Name1|Value1|Name2|Value2|Name3|Value3
我想要做的是用|
新行替换每个第二个实例,以便得到类似这样的内容......
Name1|Value1
Name2|Value2
Name3|Value3
我的问题不是换行符,因为我知道我可以用\r\n
它来代替它,而是只替换每个第二个实例的正则表达式部分|
。
答案1
查找:([^\|]*\|[^\|]*)\|
替换为:\1\n
答案2
我想用新行替换每个第二个实例 |
前:
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\n
Mac OS(最高版本 9)EOL,请使用
进一步阅读
答案3
这试图展示如何替换每一个第 N 个字符并添加换行符,而无需复制粘贴序列的部分内容。在这种情况下,需要一个数字来告诉引擎预计重复多少次。在此示例中,我想将每 13 次出现的字符替换@
为换行符。您可以看到一个捕获组中的第 13 个字符之前的 12 (13-1) 次非捕获组重复以及剩余文本@
。然后是匹配但未捕获的第 13 个字符,@
它将被替换为\r\n
。
找什么: ((?:.*?\@){12}.*?)\@
用。。。来代替: $1\r\n
查看环绕
搜索模式=正则表达式
全部替换
字符@
应更改为您的实际分隔符(在模式中重复两次)。例如,如果您的分隔符是|
,则您的模式将是((?:.*?\|){12}.*?)\|
此外,数字12
应替换为您的值(N-1)。