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

如何使用Regex提取特定格式电话号码的号码主体与分机号

解决电话号码主体与分机号的正则匹配问题

你之前的正则无法匹配带连字符的号码主体,核心问题是(\d+)只能匹配连续数字,无法包含连字符,同时也没处理好无国家码的情况。可以用下面的正则表达式满足所有示例的匹配需求:

^(\d+-)?([\d-]+)(?:x(\d+))?$

正则规则说明

  • ^:锁定字符串起始位置,确保从开头匹配,避免截取中间无效内容
  • (\d+-)?:匹配可选的国家码部分,格式为“数字+连字符”,?表示这部分可不存在(对应无国家码的号码)
  • ([\d-]+):捕获电话号码主体,支持数字和连字符的任意组合,完美适配带连字符的主体(比如2-3545645)
  • (?:x(\d+))?$:处理可选的分机号部分:
    • x:分机号的固定前缀标识
    • (\d+):捕获分机号的数字内容
    • ?$:表示整个分机部分可不存在,同时锁定字符串结束位置,避免残留无效字符

匹配结果验证(对应你的示例)

  • 1-1231312x24 → 主体:1231312,分机号:24
  • 21-1231312x24 → 主体:1231312,分机号:24
  • 1-343454 → 主体:343454,分机号:空
  • 1-2-3545645x243 → 主体:2-3545645,分机号:243
  • 4343444x25 → 主体:4343444,分机号:25
  • 454545545 → 主体:454545545,分机号:空

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 18:42:41