正则表达式自动纠错更正手机号案例
时间: 2023-11-17 10:02:53 浏览: 46
则表达式可以用于自动纠错和更正手机号码。例如,如果用户输入了一个格式不正确的手机号码,正则表达式可以自动更正为正确的格式。下面是一个示例代码:
```python
import re
def correct_phone_number(phone_number):
# 定义正则表达式
pattern = r'^(\d{3})-(\d{4})-(\d{4})$'
# 检查手机号码是否符合正则表达式
if re.match(pattern, phone_number):
# 如果符合,返回原始手机号码
return phone_number
else:
# 如果不符合,尝试更正手机号码
# 去除手机号码中的非数字字符
phone_number = re.sub(r'\D', '', phone_number)
# 检查手机号码长度是否为11位
if len(phone_number) == 11:
# 如果是,将手机号码格式化为正确的格式
return re.sub(r'(\d{3})(\d{4})(\d{4})', r'\1-\2-\3', phone_number)
else:
# 如果不是,返回空字符串
return ''
# 测试代码
print(correct_phone_number('123-4567-8901')) # 返回空字符串
print(correct_phone_number('123-4567-890')) # 返回空字符串
print(correct_phone_number('123-4567-89012')) # 返回空字符串
print(correct_phone_number('123-4567-890a')) # 返回空字符串
print(correct_phone_number('12345678901')) # 返回'123-4567-8901'
print(correct_phone_number('123 4567 8901')) # 返回'123-4567-8901'
```