如何移除OCR文本中的换行符并替换为空格合并为完整段落
OCR拆分行合并为完整段落操作指南
核心逻辑
OCR识别出的文本一般遵循段落内部为单换行分隔、段落之间为双换行分隔的规则,我们只需要替换掉段落内部的单换行符为空格,同时保留段落之间的双换行,即可还原原段落结构。
通用正则方案
适用于所有支持正则表达式查找替换的文本工具:
- 查找规则:
(\S)\r?\n(\S)
适配Windows(\r\n)、macOS/Linux(\n)两种换行格式,仅匹配段落内部相邻两行的换行位置,不会命中段落之间的空行 - 替换规则:
$1 $2
保留换行前后的原有字符,仅将中间的换行符替换为空格
常用工具操作步骤
Notepad++
- 按下快捷键
Ctrl+H打开查找替换窗口 - 勾选左下角「正则表达式」选项,取消勾选「.匹配换行符」
- 「查找目标」输入上述正则表达式,「替换为」输入替换规则
- 点击「全部替换」即可完成操作
VS Code
- 按下快捷键
Ctrl+H(macOS系统为Cmd+H)打开替换面板 - 点击面板右上角的「.*」按钮开启正则匹配模式
- 分别输入查找和替换规则后点击「全部替换」即可
Microsoft Word
- 按下快捷键
Ctrl+H打开查找替换窗口 - 点击「更多」按钮,勾选「使用通配符」选项
- 「查找内容」输入
([!^13])^13([!^13]) - 「替换为」输入
\1 \2 - 点击「全部替换」即可
优化补充操作
- 如果替换后出现连续多个空格,可以再执行一次正则替换:查找输入
\s+,替换为单个空格,即可清除多余空格 - 如果是英文类OCR文本,存在跨行拆分的带连字符单词(格式为
xxx-\nxxx),可以先执行一次替换:查找输入(\w)-\r?\n(\w),替换为$1$2,先合并跨行拆分的单词后,再执行上文的换行替换操作,避免单词中间被插入空格
处理效果示例
处理前的拆分文本:
洛雷姆 ipsum 占位文本常用于排版演示, adipiscing elit. Nam vehicula tellus faucibus metus consequat scelerisque. 各位可以将这段内容替换为自己的OCR识别文本,操作规则完全通用。Praesent elementum libero nec velit suscipit placerat accumsan vitae lacus. 占位文本无实际语义,仅用于展示效果。Etiam egestas lectus sed orci venenatis, ullamcorper gravida elit pulvinar. Pellentesque imperdiet, augue pulvinar sodales dapibus, tortor magna rutrum nulla, vel ullamcorper mi purus a diam. Ut id odio sed arcu aliquet lobortis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec quam arcu, egestas feugiat eleifend blandit, vulputate non elit. 第二段演示文本开头,Nulla a erat vel leo maximus viverra at ac lorem. Nam non imperdiet lorem. Fusce tempor arcu massa, non commodo ligula lobortis nec. Aliquam sit amet fringilla sapien, non euismod metus. Donec orci mi, sagittis vitae lobortis eu, aliquot nec libero. Sed sodales magna lacus, pretium lobortis magna varius nec. Pellentesque quis ipsum viverra orci lobortis egestas. Aliquam porttitor tincidunt ipsum, egestas placerat ante consectetur in. Morbi porttitor lacus eu augue tincidunt, at aliquet lorem consectetur.
处理后合并为完整段落的文本:
洛雷姆 ipsum 占位文本常用于排版演示, adipiscing elit. Nam vehicula tellus faucibus metus consequat scelerisque. 各位可以将这段内容替换为自己的OCR识别文本,操作规则完全通用。Praesent elementum libero nec velit suscipit placerat accumsan vitae lacus. 占位文本无实际语义,仅用于展示效果。Etiam egestas lectus sed orci venenatis, ullamcorper gravida elit pulvinar. Pellentesque imperdiet, augue pulvinar sodales dapibus, tortor magna rutrum nulla, vel ullamcorper mi purus a diam. Ut id odio sed arcu aliquet lobortis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec quam arcu, egestas feugiat eleifend blandit, vulputate non elit. 第二段演示文本开头,Nulla a erat vel leo maximus viverra at ac lorem. Nam non imperdiet lorem. Fusce tempor arcu massa, non commodo ligula lobortis nec. Aliquam sit amet fringilla sapien, non euismod metus. Donec orci mi, sagittis vitae lobortis eu, aliquot nec libero. Sed sodales magna lacus, pretium lobortis magna varius nec. Pellentesque quis ipsum viverra orci lobortis egestas. Aliquam porttitor tincidunt ipsum, egestas placerat ante consectetur in. Morbi porttitor lacus eu augue tincidunt, at aliquet lorem consectetur.
内容的提问来源于stack exchange,提问作者Funkexchange
相关产品推荐
相关产品推荐

