简单的电话号码正则表达式,开始零可选,没有分隔符

时间:2014-07-19 22:24:46

标签: c# regex

我试图建立一个专门为我的国家委内瑞拉为我们的移动电话提供商工作的正则表达式。所以,这个数字只能从0412 |开始0414 | 0416 | 0424 | 0426,我也尝试将起始0设为可选。从那以后,这个数字总是7位数。这意味着完整的电话号码长度为10到11位,前4个必须是412 | 414 | 416 | 424 | 426,带有可选的前导零。所有这些都是针对C#应用程序的。谢谢!

我尝试了以下内容及其变体:

((0?(412|414|416|424|426))\d{3}|\d{4})\d{7}

www.regexr.com(很棒的网站,顺便说一下)

2 个答案:

答案 0 :(得分:4)

  

完整的电话号码长度为10到11位

这可能对您有所帮助

0?4(12|14|16|24|26)[0-9]{7}

DEMO

模式说明:

  0?                       '0' (optional)

  4                        '4'
  (                        group and capture to \1:
    12                       '12'
   |                        OR
    14                       '14'
   |                        OR
    16                       '16'
   |                        OR
    24                       '24'
   |                        OR
    26                       '26'
  )                        end of \1

  [0-9]{7}                 any character of: '0' to '9' (7 times)

答案 1 :(得分:4)

这应该有效:

0?4(1[246]|2[46])[0-9]{7}

解释:

  • ?表示0是可选的
  • [246]匹配246(基于字符)
  • (abc|xyz)匹配abcxyz(基于子表达式)
  • {n}表示匹配n