python使用正则表达式生成手机号
时间: 2023-11-06 20:53:47 浏览: 86
可以使用以下代码生成手机号:
```python
import re
import random
# 随机生成手机号
def generate_phone():
# 手机号码前3位
phone_prefix = ['130', '131', '132', '133', '134', '135', '136', '137', '138', '139',
'150', '151', '152', '153', '155', '156', '157', '158', '159',
'170', '176', '177', '178', '180', '181', '182', '183', '184', '185', '186', '187', '188', '189']
# 随机选择前3位
prefix = random.choice(phone_prefix)
# 手机号码剩余8位数字
suffix = "".join(random.sample('0123456789', 8))
# 生成手机号
phone_number = prefix + suffix
# 验证手机号是否合法
if re.match(r"^1[3-9]\d{9}$", phone_number):
return phone_number
else:
return generate_phone()
# 测试
print(generate_phone())
```
这个代码会随机生成一个符合中国大陆手机号码规律的手机号,生成的手机号码以`1`开头,第二位为`3-9`之间的数字,后面8位为随机数字。最后再使用正则表达式验证手机号是否符合规范。如果不符合规范,则再次调用函数进行生成。
阅读全文