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

使用Python正则删除荷兰数字与邮政编码重复模式问题求助

问题解决:Python正则去除重复地址片段

错误原因分析

  • 原有正则会单独匹配每一段符合\d{,4}\s\d{4}\s[A-Za-z]{2}格式的内容,统一替换为第一个捕获组的数字,测试文本中两段重复的77 1502 CC都被替换为77,最终得到两个连续77的错误结果
  • 原有规则的([A-Za-z]){2}写法仅能捕获最后一位字母,无法完整保留2位字母后缀,\d{,4}允许匹配空数字存在匹配误差风险

修正后实现代码

import re
text = 'H. Gerhardstraat 77 1502 CC 77 1502 CC Zaandam'
# 匹配连续重复的地址后缀片段,仅保留1份
text = re.sub(r'\b((\d{1,4})\s(\d{4})\s([A-Za-z]{2}))\s+\1\b', r'\1', text)
print(text)

运行输出结果:
H. Gerhardstraat 77 1502 CC Zaandam

正则规则说明

  • \b:单词边界,避免匹配到文本中其他位置的零散内容
  • ((\d{1,4})\s(\d{4})\s([A-Za-z]{2})):第一个捕获组,完整匹配「1-4位数字门牌号 + 空格 + 4位数字邮编 + 空格 + 2位字母后缀」的地址片段
  • \s+:匹配两段重复地址之间的空格
  • \1:反向引用第一个捕获组的内容,要求后续出现的片段和前一段完全一致
  • 替换值为\1即仅保留一份地址片段,去除重复内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:00:01