返回介绍

10.3 匹配北美电话号码

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

还记得第1章中匹配北美电话号码的例子吗?跟那时相比,你已经有了很明显的提高。

下面是一个更为可靠的匹配电话号码的正则表达式。这个正则表达式是由Goyvaerts 和 Levithan合著的Regular Expressions Cookbook,First Edition 一书第235页的例子改编而来。

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

请用手头的工具试一下这个表达式(图10-2显示的是在Reggy中输入该表达式的情况)。现在你应该能轻而易举地分析清楚这个表达式了。真为你骄傲!不过,还是让我们一块再分析一次吧。

· ^是判定一行或者主题词开头的零宽度断言。

· \(?是一个字面左括号,但它是可选的(?)。

· (?:\d{3})是一个匹配连续三位数字的非捕获分组。

· \)?是可选的右括号。

· [-.]?允许有可选的连字符或者句点(点号)。

· (?:\d{3})是另一个匹配连续三位数字的非捕获分组。

· [-.]?再次允许有可选的连字符或者句号(点号)。

· (?:\d{4})是匹配连续四位数字的非捕获分组。

· $匹配一行或主题词的结尾。

这个表达式还可以再改进,这项任务就留给你了,因为你已经可以自己做了。

图10-2 在Reggy中匹配电话号码的正则表达式

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

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

发布评论

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