使用Regex查找替换移除换行,合并特定开头的文本行
用正则解决文本换行合并问题
搞定这个换行合并的需求很简单,用正则查找替换就能轻松实现。我给你整理了几个常用工具的具体操作步骤,你按需选择就行:
核心逻辑
我们要找的是那些不该单独成段的行——也就是以your 1023456;开头的行,把它们前面的换行符删掉,直接拼接到上一行末尾。
👉 VS Code(或其他支持PCRE的编辑器,比如Sublime Text)
- 打开你的文本文件,按
Ctrl+H调出查找替换面板 - 点击面板右上角的
.*图标,开启正则匹配模式 - 在「查找内容」框里输入:
\n(your 1023456;) - 在「替换为」框里输入:
$1 - 点击「全部替换」,所有符合条件的行就自动和上一行合并了
👉 Notepad++
- 打开文件后按
Ctrl+H打开替换窗口 - 切换到「正则表达式」模式,注意不要勾选「. 匹配换行符」选项
- 查找内容根据你的换行符类型选:
- Windows换行(\r\n):
\r\n(your 1023456;) - Unix/Linux换行(\n):
\n(your 1023456;)
- Windows换行(\r\n):
- 替换为:
\1 - 点「全部替换」就搞定了
👉 命令行工具(sed,适用于Linux/macOS)
如果习惯用终端操作,直接运行这条命令(记得把input.txt换成你的文件名,output.txt是处理后的文件):
sed ':a;N;$!ba;s/\n\(your 1023456;\)/\1/g' input.txt > output.txt
这个命令会先把整个文件读进内存,然后全局替换所有符合条件的换行+目标行开头,效率很高。
小提示
如果你的目标行开头有大小写差异或者空格变化,可以给正则加个大小写不敏感标记,比如把查找内容改成:
\n(?i)(your 1023456;)
这样不管是Your还是YOUR都能匹配到。
内容的提问来源于stack exchange,提问作者sshr
相关产品推荐
相关产品推荐

