如何在Notepad++中通过正则表达式合并首字段匹配的行?
如何在Notepad++中通过正则表达式合并首字段匹配的行?
没问题,这完全可以用Notepad++的正则替换功能实现,我给你一步步拆解操作:
第一步:准备工作
打开你的目标文本文件,按下Ctrl+H调出查找替换窗口,在窗口底部的「查找模式」里选择「正则表达式」,一定要勾选「匹配换行符」(这是跨多行匹配的关键,别漏了!)。
第二步:合并对应行
在「查找内容」框里输入以下正则表达式:
^(.*?)\|(.*)\r\n.*?Groub 2\r\n(.*contain \1)\r\n
在「替换为」框里输入:
\1|\2|\3\r\n
点击「全部替换」,这一步会把Group1中每一行的首字段(|前面的内容)和Group2里包含该首字段的行匹配起来,合并成首字段|原Group1内容|原Group2描述的格式。
第三步:清理多余的标题行
替换完成后,文本里还会剩下Groub 1、Groub 2这类标题行,我们再做一次替换:
「查找内容」输入:
Groub \d\r\n
「替换为」留空,再次点击「全部替换」,就能把这些没用的标题行删掉了。
补充说明
- 这个正则是基于你给出的示例格式写的:Group2的行都是
Line contain X格式,其中X对应Group1行的首字段。如果你的实际文本里Group2的行格式有变化,可能需要微调正则里的contain部分,比如改成.*来匹配任意包含首字段的行。 - 如果你的文本换行符是
\n而非\r\n(比如Linux/Mac格式),把正则里的\r\n改成\n即可。
备注:内容来源于stack exchange,提问作者amr
相关产品推荐
相关产品推荐

