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

如何在Python中不使用正则表达式提取以800开头的付费电话号码

提取以800开头的电话号码(非正则实现)

要实现不使用正则表达式提取目标号码,可以通过字符串分割和条件判断完成,具体代码如下:

sentence = "The toll-no is 800-123-2345 and 900-234-2345"
parts = sentence.split()
target_numbers = []

for part in parts:
    # 筛选以800开头、仅含数字和连字符的候选内容
    if part.startswith("800-") and all(c.isdigit() or c == '-' for c in part):
        # 验证格式为xxx-xxx-xxxx(长度12,包含2个连字符)
        if len(part) == 12 and part.count('-') == 2:
            target_numbers.append(part)

# 输出结果,若有多个匹配项会全部收集,这里取第一个示例结果
print(target_numbers[0] if target_numbers else "未找到匹配号码")

代码逻辑说明:

  • 用split()将原字符串按空格拆分为独立元素,把电话号码与其他文本分离
  • 遍历每个元素,先通过startswith("800-")锁定目标号码的开头特征
  • 用all()验证元素仅包含数字和连字符,排除无关内容
  • 最后检查长度和连字符数量,确保符合xxx-xxx-xxxx的标准电话号码格式
  • 收集所有符合条件的号码,支持提取多个匹配项

测试示例输入时,会输出预期结果:800-123-2345。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:05:17