如何使用Python 3.6正则表达式在三位数字后添加空格?
解决方案
搞定这个需求很简单,用Python 3.6的正则表达式就能轻松实现,直接上完整方案:
代码实现
import re def format_phone_number(phone_str): # 正则匹配 +XX 空格 前三位数字 剩余数字的结构 pattern = r'(\+\d{2} )(\d{3})(\d+)' # 替换为「国家码 + 前三位数字 + 空格 + 剩余数字」的格式 return re.sub(pattern, r'\1\2 \3', phone_str) # 测试示例输入 test_input = "+91 1244567" output = format_phone_number(test_input) print(output) # 输出: +91 124 4567 # 测试其他符合格式的号码 another_test = "+44 123456789" print(format_phone_number(another_test)) # 输出: +44 123 456789
正则规则解释
(\+\d{2} ):第一个捕获组,匹配以+开头的两位国家码,以及后面的空格(比如示例里的+91)(\d{3}):第二个捕获组,精准定位国家码后的前三位数字(比如示例中的124)(\d+):第三个捕获组,匹配剩下的所有数字(比如示例中的4567)- 替换字符串
r'\1\2 \3':把三个捕获组按顺序拼接,同时在第二个和第三个组之间插入空格,完美实现格式调整
这个方案适配所有+XX XXXXX...格式的号码,不管后面的数字长度多少,都能准确在前三位后插入空格。
内容的提问来源于stack exchange,提问作者Pert8S
相关产品推荐
相关产品推荐

