如何使用正则表达式验证以0开头后接6/7的10位电话号码?
修正后的正则表达式解决方案
需求回顾
需要验证的电话号码需满足:
- 以
0开头 - 第二位必须是
6或7 - 整体恰好10位数字
原正则的问题
你提供的正则r'(^(?:[0]9)?[0-9]{10,12}$)'存在以下问题:
- 允许可选的
09前缀,不符合"必须以0开头且第二位是6/7"的要求 - 匹配长度为10-12位数字,而需求是固定10位
- 没有限制第二位的取值范围
修正后的正则表达式
String pattern = r'^0[67]\d{8}$';
正则说明
^:匹配字符串的起始位置0:强制第一位为0[67]:第二位只能是6或7\d{8}:匹配后续8位数字(加上前面两位,总共10位)$:匹配字符串的结束位置
这样就能精准匹配符合要求的电话号码,比如0754758644、0621165600这类示例号码。
内容的提问来源于stack exchange,提问作者TEA COFFEE
相关产品推荐
相关产品推荐

