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

如何编写正则表达式排除国家码与手机号之间的空格实现正确分组

手机号拆分正则修复方案

问题根因

原有正则((\D?[0-9]{3})(\D?\s?[0-9]{7,8}))的问题在于,国家码与后续手机号之间的分隔符(空格、非数字字符)被写在了第二个捕获分组的规则范围内,因此分隔符会被一同捕获到第二个分组中。

修复后正则

(\+\d{3})(?:\D*\s*)?(\d{7,8})

规则说明

  • 第一个捕获组(\+\d{3}):严格匹配+加三位数字的国家码格式,完全符合要求的+xyz分组规则
  • 中间的(?:\D*\s*)?为非捕获组(开头加?:表示该组不会生成独立的捕获结果),用于匹配国家码和后续手机号之间任意数量的非数字、空格字符,这部分内容不会被计入任何捕获分组
  • 第二个捕获组(\d{7,8}):仅捕获后续的7-8位纯数字,不会混入空格等分隔符

测试用例匹配结果

针对你提供的测试字符串"+347 56887364 +37256887364 +33359835647",匹配结果如下:

  • 第一组:+347,第二组:56887364
  • 第一组:+372,第二组:56887364
  • 第一组:+333,第二组:59835647

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:45:03