Notepad++正则表达式批量合并分隔文本段求助
Notepad++正则表达式批量合并分隔文本段求助
嗨,看起来你需要把每组的标题和内容批量合并成单行格式,Notepad++的正则替换功能完全能搞定这个需求,我给你一步步拆解操作:
操作步骤
- 打开你的文本文件,切换到Notepad++。
- 按下快捷键
Ctrl+H打开「替换」对话框。 - 在「查找模式」区域,选择「正则表达式」,并勾选底部的「. matches newline」(让正则能跨多行匹配内容)。
- 在「查找内容」输入框中粘贴以下正则表达式:
(?s)(.*?)----\s*(.*?)\s*----\s* - 在「替换为」输入框中粘贴替换模板:
$2; ${{1/\n/ /g}}\n - 点击「全部替换」按钮,完成所有组的合并。
正则与替换模板说明
查找正则解析:
(?s):启用单行模式,让.可以匹配换行符,这样我们能跨多行捕获内容块和标题块。(.*?):非贪婪捕获内容(你的body部分)到捕获组1,非贪婪模式确保不会错误匹配到后面的分隔符。----:匹配你指定的分隔符。\s*:匹配分隔符前后的任意空白(包括换行、空格、制表符),兼容内容/标题前后可能存在的空白。(.*?):非贪婪捕获标题到捕获组2。\s*----\s*:匹配最后一个分隔符及前后空白,确保完整捕获一组内容。
替换模板解析:
$2:插入捕获到的标题内容。;:添加你示例中的分号+空格分隔符,如果你想要其他分隔符直接修改这里即可(比如换成-)。${{1/\n/ /g}}:把捕获组1(内容块)里的所有换行符替换成空格,解决内容跨多行的问题。\n:每组合并后换行,保持结果的可读性。
效果示例
针对你提供的两组内容:
- 第一组原始内容合并后会变成:
Sharks and Lawyers; Sharks and Lawyers - Q: Why won't sharks attack lawyers? A: Professional courtesy. - 第二组原始内容合并后会变成:
Pig-ipede; Pig-ipede - What do you get when you cross a pig and a centipede? Bacon and legs.
这样9k多组内容就能一次性批量处理完成啦!
备注:内容来源于stack exchange,提问作者robert
相关产品推荐
相关产品推荐

