我正在检查一个应用程序的c#代码并进行文档记录。在浏览代码时,我看到了一个不同寻常的美国电话号码正则表达式。正则表达式如下
@"^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$";我从上面的电话号码得出的结论是01.(29).123.4567或01-38-111-1111。
我的解释正确吗?对该正则表达式的任何见解都值得高度赞赏。以上正则表达式的例子将帮助我学习更多关于正则表达式的知识。
发布于 2011-09-19 10:00:22
从左到右阅读...
^[01]?可能以-或..(([2-9]\d{2})|[2-9]\d{2})开头可能后面跟一个代码,空格或必须以2和<->D20>之间的数字开头,然后是任意两个数字。(奇怪的是,这重复了两次,捕获组应该总是包含相同的部分,奇怪)。这可能意味着跳过了括号,这会更有意义。通常,您可以使用代码字符进行escape.[- .]?。<代码>H246><>F247>后面必须跟任意四位数字。< - >H246><>可能后跟-,空格或code必须在后面跟任意四位数字。
发布于 2011-09-19 10:04:17
^01?=0、1或无
-。?=-或者。或者什么都不做
((2-9\d{2}) =第一个数字2或更大,后跟2位数字,可以是b/w 0到9的任何数字..表示012或112都可以正常工作
|=或符号
2-9\d{2}) =第一个数字b/w 2和9,后跟2个数字b/w 0-9
-。?=表示-或。或者什么都不做
\d{4}=任意四个数字b/w 0-9
$=它确保正则表达式以前面的$ sign结尾。^和$做同样的事情,但是它只检查正则表达式的开头。
发布于 2019-01-23 15:56:41
^\d{2}-\d{3,15}$它将有助于将手机号码的范围从3个t0 15位。
例如:91-xxxxxxxxxxxxxxx
上面的x为3到15位的RegularExpression(@"^\d{2}-\d{3,15}$",ErrorMessage =“无效手机号”)
https://stackoverflow.com/questions/7465778
复制相似问题