You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式移除两个小写字母间的空格?(OCR文本清洗)

解决方法

你的问题出在使用str.replace()会替换所有相同的空格,而不是仅替换正则匹配到的、位于两个小写字母之间的空格。正确做法是用re.sub()直接在匹配位置完成替换。

可行代码

import re

noisy = "Hel lo, my na me is Mark."
# 匹配小写字母+空格+小写字母的组合,捕获前后的小写字母
clean = re.sub(r'([a-z])\s([a-z])', r'\1\2', noisy)

print(clean)
# 输出: Hello, my name is Mark.

代码说明

  • 正则表达式r'([a-z])\s([a-z])':
    • ([a-z]):捕获第一个小写字母,作为分组1
    • \s:匹配中间的空格
    • ([a-z]):捕获第二个小写字母,作为分组2
  • re.sub()会把所有匹配到的该模式,替换为\1\2,也就是将两个捕获的小写字母直接拼接,去掉中间的空格。
  • 如果需要兼容瑞典语特殊小写字母(如å、ä、ö),可将正则修改为r'([a-zåäö])\s([a-zåäö])',确保这些字符也能被正确匹配。

内容的提问来源于stack exchange,提问作者steca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 10:18:32