文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1.7 使用量词
现在用另一种语法来匹配电话号码:
\d{3}-?\d{3}-?\d{4}
花括号中的数字表示待查找的数字出现的次数。包含数字的花括号是一种量词(quantifier)。花括号本身用做元字符。
问号是另一种量词,在以上表达式中表示连字符是可选的。也就是说,连字符可以不出现或只出现一次。还有其他的量词,例如加号(+)表示“一个或多个”,星号(*)表示“零个或多个”。
使用量词能让正则表达式变得更简洁:
(\d{3,4}[.-]?)+
对,加号表示出现一次或多次。这个正则表达式表示括号里的模式出现一次或多次,括号里的模式匹配三位或四位数字,后跟一个连字符或一个点号。
你有没有头晕呢?我希望没有。下面逐一解释表达式中的每一项 :
· 左圆括号(为捕获分组的起始符;
· 反斜杠\为字符组简写式的起始符(对之后的字符进行转义);
· 字符d为字符组简写式的结束符(d匹配0到9范围内的任意数字);
· 左花括号{为量词起始符;
· 数字3为匹配的最小数量;
· 逗号,隔开不同的数量;
· 数字4为匹配的最大数量;
· 右花括号}为量词的结束符;
· 左方括号[为字符组的起始符;
· 点号.(匹配点号本身);
· 连字符-匹配连字符的本身;
· 右方括号]为字符组的结束符;
· 问号?表示量词“零个或一个”;
· 右圆括号)为捕获分组的结束符;
· 加号+表示量词“一个或多个”。
这个表达式能用但不完全对,因为它只能匹配3位或4位的数字,而不管是否符合电话号码的格式。好吧,犯错会让我们印象深刻,进步得更快。
我们来改进一下:
(\d{3}[.-]?){2}\d{4}
这个表达式匹配的字符串是连续两个无括号的三位数字,每三位数字后可以带连字符也可以不带,最后是一个四位数字。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论