我试图建立一个专门为我的国家委内瑞拉为我们的移动电话提供商工作的正则表达式。所以,这个数字只能从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
(很棒的网站,顺便说一下)
答案 0 :(得分:4)
完整的电话号码长度为10到11位
这可能对您有所帮助
0?4(12|14|16|24|26)[0-9]{7}
模式说明:
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]
匹配2
,4
或6
(基于字符)(abc|xyz)
匹配abc
或xyz
(基于子表达式){n}
表示匹配n
次