python使用正则表达式生成手机号
时间: 2023-11-06 17:53:47 浏览: 141
可以使用 Python 中的 re 模块来生成手机号。以下是一个示例代码:
```python
import re
import random
def generate_phone_number():
prefix = ["13", "14", "15", "17", "18"]
phone_number = random.choice(prefix) + "".join(random.choice("0123456789") for i in range(8))
return re.sub(r"(?<=\d)(?=(?:\d\d\d)+$)", "-", phone_number)
# 生成手机号
phone_number = generate_phone_number()
print(phone_number)
```
这个函数会随机生成一个以 13、14、15、17、18 为前缀的手机号,然后将其格式化为 xxx-xxxx-xxxx 的形式。
相关问题
python正则表达式动态生成手机号码
在Python中,正则表达式可以用来创建模式匹配手机号码的规则。如果需要生成动态的手机号码,通常会结合随机数生成库如`random`和字符串操作来实现。这里是一个基本的例子,展示如何生成包含固定格式的随机中国手机号码:
```python
import re
import random
def generate_random_phone():
# 中国手机号码的一般格式,可以按实际情况调整
area_codes = ['13', '14', '15', '16', '17', '18', '19']
prefix = random.choice(area_codes)
last_digits = [str(random.randint(0, 9)) for _ in range(11)] # 包含区号和后11位数字
phone_number = prefix + ''.join(last_digits)
# 使用正则表达式检查生成的号码是否符合规范
pattern = r'^\d{11}$' # 一般中国手机号码长度为11位
if re.match(pattern, phone_number):
return phone_number
else:
return generate_random_phone() # 如果不符合规范,再尝试生成新的号码
# 示例
random_phone = generate_random_phone()
print(f"生成的手机号码: {random_phone}")
```
python如何用re正则表达式和random随机生成手机号
可以使用Python中的re和random库来生成手机号。
1. 使用正则表达式生成手机号:
```python
import re
phone_pattern = re.compile(r'1\d{10}') # 手机号正则表达式
phone_number = phone_pattern.findall('my phone number is 18888888888') # 匹配手机号
print(phone_number) # ['18888888888']
```
2. 使用random库随机生成手机号:
```python
import random
def generate_phone():
prefix = ['130', '131', '132', '133', '134', '135', '136', '137', '138', '139', '147', '150', '151', '152', '153', '155', '156', '157', '158', '159', '186', '187', '188', '189']
return random.choice(prefix) + ''.join(random.sample('0123456789', 8))
phone_number = generate_phone()
print(phone_number) # 随机生成一个手机号
```
这样就可以用Python生成手机号了。
阅读全文