文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1.8 括选文字符
最后这个正则表达式表示第一个3位数字可以带也可以不带括号,即区号是可选的:
^(\(\d{3}\)|^\d{3}[.-]?)?\d{3}[.-]?\d{4}$
为了便于理解,我们再依次看一下表达式中的各项:
· 出现在正则表达式起始位置或者竖线(|)之后的脱字符^,表示电话号码会出现在一行的起始位置;
· 左括号(为捕获分组的起始符;
· \(表示左括号本身;
· \d 匹配一位数字;
· \d之后的{3}是量词,表示匹配三位数字;
· \)匹配右括号本身;
· 竖线符|表示选择,也就是从多个可选项中选择一个,换句话说,它表示“匹配一个不带括号的区号或一个带括号的区号”;
· 脱字符^匹配行起始位置;
· \d 匹配一位数字;
· {3}是表示匹配三位数字的量词;
· [.-]?匹配一个可选的点号或连字符;
· 右括号)为捕获分组的结束符;
· 问号?表示分组可选,即分组中的前缀可有可无;
· \d 匹配一位数字;
· {3}表示匹配三位数字的量词;
· [.-]?匹配另一个可选的点号或连字符;
· \d 匹配一位数字;
· {4}是表示匹配四位数字的量词;
· 美元符$匹配行结束位置。
这个表达式最终匹配十位的北美电话号码,而且括号、连字符或者点号都是可选的。你可以试试不同格式的电话号码,看看它能否匹配。
以上正则表达式中的捕获分组并不是必需的。分组是必要的,但是捕获不需要。更好的方法是使用非捕获分组。在本书最后一章中我们再次讨论这个正则表达式时,你自然就理解了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论