Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 电话号码正则表达式_Regex - Fatal编程技术网

Regex 电话号码正则表达式

Regex 电话号码正则表达式,regex,Regex,我正在审查申请的c#代码并编制文档。在浏览代码时,我看到了一个不寻常的正则表达式,表示美国电话号码。下面是正则表达式 @"^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$"; 我从上述电话号码得出的结论是01.(29)。123.4567或01-38-111-1111 我的口译正确吗?对正则表达式的任何洞察都将受到高度赞赏。以上正则表达式的示例将帮助我进一步了解正则表达式 从左到右读取 ^[01]?可能以0或1开头

我正在审查申请的c#代码并编制文档。在浏览代码时,我看到了一个不寻常的正则表达式,表示美国电话号码。下面是正则表达式

 @"^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$";
我从上述电话号码得出的结论是01.(29)。123.4567或01-38-111-1111


我的口译正确吗?对正则表达式的任何洞察都将受到高度赞赏。以上正则表达式的示例将帮助我进一步了解正则表达式

从左到右读取

  • ^[01]?
    可能
    0
    1
    开头
  • [-.]?
    后面可能跟一个
    -
    空格或
  • (([2-9]\d{2})|[2-9]\d{2})
    必须以
    2
    9
    之间的数字开头,然后后跟任意两位数字。(奇怪地重复了两次,捕获组应该总是包含相同的部分,奇怪的)。这可能意味着跳过了括号,这会更有意义。通常,使用
    \
    字符进行转义
  • [-.]?
    后面可能跟一个
    -
    空格或
  • \d{3}
    后面必须跟任意三位数字
  • [-.]?
    后面可能跟一个
    -
    空格或
  • \d{4}$
    后面必须跟(和结尾)任何四位数字

    • ^[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结尾。^与$执行相同的操作,但它只检查正则表达式的开头

      ^\d{2}-\d{3,15}$
      
      这将有助于将手机号码的范围从3位到15位

      例如:
      91-xxxxxxxxxxxxx

      上述
      x
      的范围为3到15位 [正则表达式(
      @“^\d{2}-\d{3,15}$
      ”,ErrorMessage=“无效电话号码”)]

      它将采用91-XXXXXXXXX形式的数字

      x是10到15个数字

      我正要做完全相同的事情。节省了我一些打字时间+祝你好运。我认为“不匹配”的paren应该是转义的,产生(29)或仅产生29,或任何使用数字2-9的2位数字。更清楚地说,我认为这是指(([2-9]\d{2})|[2-9]\d{2})^[01]?这意味着它可以从一个空格开始?@AdnanBhatti:复制和粘贴错误。我指责OP缺少代码格式。@Kibbee:这更有意义:)@alex谢谢你的快速回复,在你的回答中,你说的一些表达式可能会以开头或结尾,这是否意味着它们是可选的,或者它必须有这些符号中的任何一个?对于上面的表达,我引用的例子,请让我知道哪些是适用的。18001111111, 1-800-123-4567,1.800.123.4567, 8001234567,(800)-123-4567, (800)2345678. 你还说了一个表达偏执缺失,其实它就在那里!如果我错了,请纠正我
      [RegularExpression(@"^\d{2}-\d{10,15}$", ErrorMessage = "Invalid Phone no")]