regex 了解正则表达式

a6b3iqyw  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(128)

我正在研究下面的正则表达式,到目前为止只理解了其中的一部分。

^(\(\d{3}\)|^\d{3}[.-]?)?\d{3}[.-]?\d{4}$

字符串
1.开头的脱字符和最后的美元将使这个正则表达式只允许10位数?
1.第二个插入字符是因为它意味着下一个3位数的开始,它的遗漏做什么,我试图删除它,但没有发现任何变化?
1.竖条或管道字符做什么我不明白吗?
1.第一个反斜杠是paranethesis和第二个为3位数。

0ve6wy6x

0ve6wy6x1#

^(\(\d{3}\)|^\d{3}[.-]?)?\d{3}[.-]?\d{4}$

字符串

  • ^-查找匹配的行的开头,它是一个锚。
  • (-开始匹配捕获以最终获取要提取的文本/信息。
  • \(-查找文字括号。
  • \d- Regex Replacement,指定查找 digit 或数字
  • {3}-一个在前一项上表示的量词,在本例中它表示查找三个数字。可以重写为\d\d\d。因此考虑这一条语句\d{3}表示查找三个数字。
  • \)查找文字结尾括号。
  • |- Regex或者,到目前为止,它在两个括号内匹配3个数字,现在做Or....
  • ^-再次行的开头,建议锚不必以这种方式指定,只需在开头留下一个然后将Or作为子匹配。
  • \d{3}-同上。
  • [-表示一组字符的开头。这类似于文字\的情况,但用于多个字符。[ ]集合中的所有内容都可以是这些字符中的任何一个。
  • .-句点(.)和破折号的文字字符。不要与其他上下文中的.混淆,当时它意味着any character or whitespace。在一个集合中,就像现在一样,它意味着一个 * 文字 * 句点。
  • ]-集合的结尾。集合是[.-],表示两个可能的字符的集合,只有一个可以匹配。
  • ?一个量词,表示前面的声明,即集合,可以匹配,也可以不匹配。
  • )子匹配捕获结束。
  • ?子匹配可能发生也可能不发生。* 我再次相信用户在括号中的错误 *。

和上面一样的模式,同样的解释。

  • $行尾锚。这表示整个文本发送端必须符合模式或失败
txu3uszq

txu3uszq2#

# ^(?:\(\d{3}\)|\d{3}[.-]?)?\d{3}[.-]?\d{4}$

 # Optional area code
 ^                             # Beginning of string
 (?:                           # Cluster group start
      \( \d{3} \)                   # '(' 3-digit area code ')'
   |                              # or, 
      \d{3} [.-]?                   # just 3-digit area code, optional dot or dash
 )?                            # Cluster group end
 # 7 digit phone number
 \d{3} [.-]? \d{4}             # ( 3-digits, optional dot or dash, 4-digits )
 $                             # End of string

字符串

相关问题