如何在Notepad++中筛选含逗号的行与后续最近含Proximity的行并合并,丢弃其他行
如何在Notepad++中筛选含逗号的行与后续最近含Proximity的行并合并,丢弃其他行
嘿,这个需求我之前刚好碰到过,用Notepad++的正则表达式替换就能完美解决,步骤超清晰,我给你一步步拆解:
核心思路
我们要利用正则表达式精准匹配「含逗号的行」+「中间所有无关行」+「后续最近的含Proximity的行」,然后把前后两行用分号拼接,直接丢掉中间的内容。
具体操作步骤
- 打开Notepad++并加载你要处理的文本
- 按下快捷键
Ctrl+H打开替换窗口 - 在窗口右下角的「搜索模式」里,选择「正则表达式」(注意不要勾选「.匹配换行符」选项,这个很关键)
- 在「查找内容」框中粘贴以下正则表达式:
简单解释下这个正则的逻辑:^(.*,.*)\r?\n(?:(?!.*Proximity).*\r?\n)*(.*Proximity.*)\r?\n^(.*,.*):匹配开头的含逗号的完整行\r?\n:兼容Windows(\r\n)和Unix(\n)的换行符(?:(?!.*Proximity).*\r?\n)*:非捕获组,用来匹配所有不含Proximity的行,直到找到目标行(.*Proximity.*):匹配后续最近的含Proximity的完整行
- 在「替换为」框中输入:
这里的$1;$2\r\n$1和$2对应前面正则里捕获到的「含逗号的行」和「含Proximity的行」,用分号;拼接后加上换行符 - 点击「全部替换」,搞定!
效果验证
拿你给的示例文本来说,处理后会直接得到:
"SCOTT, Michael;0273ADNC PAC Proximity Reader False" "SCHRUTE, Dwight;0897FFRF PAC Proximity Reader False"
中间的无关行(2、3、5、7行)都会被自动丢弃,完全符合你的需求~
备注:内容来源于stack exchange,提问作者dakim
相关产品推荐
相关产品推荐

