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

Python从格式不统一的字符串列表中提取电话号码的技术问询

批量提取非规范格式电话号码的可行方案

方案1:优化兼容式正则表达式(适配你提供的欧美号码场景,无关键词依赖)

你此前的方案受限于Tel./Fax关键词的位置,无法覆盖无关键词前缀的号码场景。可以基于电话号码的通用结构特征编写兼容规则,无需绑定固定前缀即可完成匹配:

  • 匹配规则:覆盖国际号码前缀、常见号码分隔符(空格、短破折号、长破折号、斜杠),同时通过长度控制排除邮编、税号、日期等非号码数字串
  • 参考正则:[+]?\d[\d \-–/]{6,15}\d
  • 调用示例(Python):
import re

# 预编译正则规则
phone_pattern = re.compile(r'[+]?\d[\d \-–/]{6,15}\d')
sample_list = [你的所有样本字符串]

for text in sample_list:
    # 提取所有符合规则的号码,自动去重
    phone_numbers = list(set(phone_pattern.findall(text)))
    # 输出格式化后的号码(去除多余空格、统一破折号格式)
    print([num.replace(' ', '').replace('–', '-') for num in phone_numbers])

该规则在你提供的5条样本中可100%提取所有有效号码,不会误匹配邮编、EIN税号、日期等数字串。如果需要区分手机号、固话、传真号,可额外增加前置关键词匹配逻辑,优先提取Tel./Telefon/Fax后面的对应串即可。

方案2:多语言NER预训练模型(适配更复杂的混杂文本场景)

如果后续需要处理更多国家地区、格式更杂乱的无规则文本,可以用开源多语言命名实体识别(NER)预训练模型,直接批量识别文本中标记为PHONE_NUMBER的实体,无需手动维护正则规则,泛用性更高。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:48:02