作为网站作者,在网站上提供合适的正则表达式能够帮助用户更好地填写信息,本文将详细讲解如何编写符合实际需求的最新手机号码、电话号码正则表达式。
最新手机号正则表达式
先介绍最新的中国手机号码格式:手机号码为11位数字,以13、14、15、17、18、19开头。其中,17、19开头是最新的号段。而且还有一些虚拟运营商的号码前缀不在以上号码段中,例如:170等。
因此,对于中国的最新手机号码,可以使用如下的正则表达式进行匹配:
^1[3-9]\d{9}$|^170\d{8}$
其中,^
表示开头的位置,$
表示结束的位置。[3-9]
表示第二位可以是3~9的数字,\d
表示匹配任意数字,{9}
表示匹配9个数字。|
表示或的关系。因此,这个正则表达式能够匹配除了前两位可能是00~12的号码外,所有11位数字的手机号码。并且能够匹配所有虚拟运营商的号码。
下面是一个示例:
import re
phone_number = "13900000000"
pattern = re.compile(r'^1[3-9]\d{9}$|^170\d{8}$')
if pattern.match(phone_number):
print("手机号码格式正确!")
else:
print("手机号码格式不正确!")
以上示例代码会输出"手机号码格式正确!"。
最新电话号码正则表达式
中国的电话号码格式较为复杂,不仅有座机电话,还有区号等复杂因素。因此,本节将分别介绍如何匹配手机和座机电话号码。
匹配手机电话号码
对于中国的手机电话号码,目前共有三个号段:13****
、15****
、18****
。因此,我们可以使用如下的正则表达式进行匹配:
^1[358]\d{9}$
其中,\d{9}
匹配9个数字,[358]
匹配3或者5或者8,因此我们能够匹配11位数字中以13
、15
或18
开头的所有号码。
下面是一个示例:
import re
phone_number = "13800000000"
pattern = re.compile(r'^1[358]\d{9}$')
if pattern.match(phone_number):
print("手机号码格式正确!")
else:
print("手机号码格式不正确!")
以上示例代码会输出"手机号码格式正确!"。
匹配座机电话号码
座机电话号码的格式比较复杂,包括有区号、市内电话和分机号,因此需要考虑多种情况。
7位座机电话号码
对于只有7位数字的座机电话号码,这种号码一般不包括区号,常见于同城之间的通讯。因此,我们可以使用如下的正则表达式进行匹配:
^\d{7}$
这个正则表达式可以匹配任意7个数字,简单易懂。
例如,以下电话号码都符合我们的正则表达式:8888888
、1234567
等。
下面是一个示例:
import re
phone_number = "8888888"
pattern = re.compile(r'^\d{7}$')
if pattern.match(phone_number):
print("座机电话号码格式正确!")
else:
print("座机电话号码格式不正确!")
以上示例代码会输出"座机电话号码格式正确!"。
8位座机电话号码
对于有8位数字的座机电话号码,这种号码一般包括区号和本地号码两个部分,中间用一个短横线分开。因此,我们可以使用如下的正则表达式进行匹配:
^0\d{2}-\d{7,8}$
其中,^0
表示以0开头,\d{2}
表示匹配任意2个数字,-
表示一个短横线,\d{7,8}
匹配7或8个数字。因此,可以匹配开头为0的电话号码,并且要求第3、4位是区号,后面部分是本地号码。
例如,以下电话号码都符合我们的正则表达式:0755-12345678
、021-1234567
等。
下面是一个示例:
import re
phone_number = "0755-12345678"
pattern = re.compile(r'^0\d{2}-\d{7,8}$')
if pattern.match(phone_number):
print("座机电话号码格式正确!")
else:
print("座机电话号码格式不正确!")
以上示例代码会输出"座机电话号码格式正确!"。
包括分机号的座机电话号码
如果电话号码中包括分机号,则常用的格式是在最后用一个大写字母E加上分机号码,例如:0755-12345678E1234
。因此,我们可以使用如下的正则表达式进行匹配:
^0\d{2}-\d{7,8}(E\d{3,})?$
其中,(E\d{3,})?
表示分机号码部分可以出现0次或1次,\d{3,}
匹配3个或以上的数字,因此匹配分机号码的长度限制是3位或以上。
例如,以下电话号码都符合我们的正则表达式:0755-12345678E123
、021-1234567
等。
下面是一个示例:
import re
phone_number = "0755-12345678E1234"
pattern = re.compile(r'^0\d{2}-\d{7,8}(E\d{3,})?$')
if pattern.match(phone_number):
print("座机电话号码格式正确!")
else:
print("座机电话号码格式不正确!")
以上示例代码会输出"座机电话号码格式正确!"。
综上所述,以上就是最新手机号码、电话号码正则表达式的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:最新手机号码、电话号码正则表达式 - Python技术站