返回介绍

1.8 括选文字符

发布于 2024-01-20 21:40:46 字数 940 浏览 0 评论 0 收藏 0

最后这个正则表达式表示第一个3位数字可以带也可以不带括号,即区号是可选的:

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

为了便于理解,我们再依次看一下表达式中的各项:

· 出现在正则表达式起始位置或者竖线(|)之后的脱字符^,表示电话号码会出现在一行的起始位置;

· 左括号(为捕获分组的起始符;

· \(表示左括号本身;

· \d 匹配一位数字;

· \d之后的{3}是量词,表示匹配三位数字;

· \)匹配右括号本身;

· 竖线符|表示选择,也就是从多个可选项中选择一个,换句话说,它表示“匹配一个不带括号的区号或一个带括号的区号”;

· 脱字符^匹配行起始位置;

· \d 匹配一位数字;

· {3}是表示匹配三位数字的量词;

· [.-]?匹配一个可选的点号或连字符;

· 右括号)为捕获分组的结束符;

· 问号?表示分组可选,即分组中的前缀可有可无;

· \d 匹配一位数字;

· {3}表示匹配三位数字的量词;

· [.-]?匹配另一个可选的点号或连字符;

· \d 匹配一位数字;

· {4}是表示匹配四位数字的量词;

· 美元符$匹配行结束位置。

这个表达式最终匹配十位的北美电话号码,而且括号、连字符或者点号都是可选的。你可以试试不同格式的电话号码,看看它能否匹配。

以上正则表达式中的捕获分组并不是必需的。分组是必要的,但是捕获不需要。更好的方法是使用非捕获分组。在本书最后一章中我们再次讨论这个正则表达式时,你自然就理解了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文