【发布时间】:2013-11-16 08:45:36
【问题描述】:
在Introducing regular expression 的第 1 章中,我看到了这样的正则表达式:
^(\(\d{3}\)|^\d{3}[.-]?)?\d{3}[.-]?\d{4}$
我对此感到有些困惑,因为第二个 ^ 对我来说似乎是多余的。 | 在括号内分隔了两个备选方案\(\d{3}\) 或^\d{3}[.-]?,并且在括号外有一个^,我理解为匹配一行的开头,所以我认为第二个^在^\d{3}[.-]? 中不必匹配行开头。有人对此有想法吗?
【问题讨论】:
-
旁注:我强烈建议不要验证电话号码。有太多方面需要考虑。例如,如果有人需要给你一个国际号码怎么办?作为一名前任,我遇到了很多麻烦,因为美国公司无法理解北美以外的整个世界...... :-)
-
你在什么书或参考书中看到这个?
-
@T.J.Crowder:完全同意。甚至不要让我开始了解邮政编码。
-
<rant>因为这是一个“介绍”。可能有意添加它以明确正则表达式在某些情况下可能“困难”或“复杂”</rant> -
问得很好,很高兴看到。
标签: regex syntax parentheses