返回介绍

1.7 使用量词

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

现在用另一种语法来匹配电话号码:

\d{3}-?\d{3}-?\d{4}

花括号中的数字表示待查找的数字出现的次数。包含数字的花括号是一种量词(quantifier)。花括号本身用做元字符。

问号是另一种量词,在以上表达式中表示连字符是可选的。也就是说,连字符可以不出现或只出现一次。还有其他的量词,例如加号(+)表示“一个或多个”,星号(*)表示“零个或多个”。

使用量词能让正则表达式变得更简洁:

 (\d{3,4}[.-]?)+

对,加号表示出现一次或多次。这个正则表达式表示括号里的模式出现一次或多次,括号里的模式匹配三位或四位数字,后跟一个连字符或一个点号。

你有没有头晕呢?我希望没有。下面逐一解释表达式中的每一项 :

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

· 反斜杠\为字符组简写式的起始符(对之后的字符进行转义);

· 字符d为字符组简写式的结束符(d匹配0到9范围内的任意数字);

· 左花括号{为量词起始符;

· 数字3为匹配的最小数量;

· 逗号,隔开不同的数量;

· 数字4为匹配的最大数量;

· 右花括号}为量词的结束符;

· 左方括号[为字符组的起始符;

· 点号.(匹配点号本身);

· 连字符-匹配连字符的本身;

· 右方括号]为字符组的结束符;

· 问号?表示量词“零个或一个”;

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

· 加号+表示量词“一个或多个”。

这个表达式能用但不完全对,因为它只能匹配3位或4位的数字,而不管是否符合电话号码的格式。好吧,犯错会让我们印象深刻,进步得更快。

我们来改进一下:

(\d{3}[.-]?){2}\d{4}

这个表达式匹配的字符串是连续两个无括号的三位数字,每三位数字后可以带连字符也可以不带,最后是一个四位数字。

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

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

发布评论

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