嘿伙计们对正则表达式不熟悉我找到了这样的正则表达式。
preg_match("/^(1[-\s.])?(\()?\d{3}(?(2)\))[-\s.]?\d{3}[-\s.]?\d{4}$/",$number)
preg_match("/^
(1[-\s.])? # optional '1-', '1.' or '1'
( \( )? # optional opening parenthesis
\d{3} # the area code
(?(2) \) ) # if there was opening parenthesis, close it
[-\s.]? # followed by '-' or '.' or space
\d{3} # first 3 digits
[-\s.]? # followed by '-' or '.' or space
\d{4} # last 4 digits
$/x",$number);
我在教程网站上找到了这些解释..我只需要知道为什么(?(2))在这里被分配..为什么在开头应用了问号(可选符号)以及(2)的用途是什么在那个代码..
很抱歉,如果这个问题标准低,因为我是新手。任何帮助都会受到赞赏.ThankS。:)
答案 0 :(得分:1)
(?(2)\))
是一个if子句,用于检查是否捕获了第二个匹配组。
您应该能够在Regex101看到正则表达式的细分。查看正则表达式在所有点上的作用非常有用,并且很容易从那里调整正则表达式。