我想检查俄罗斯/哈萨克斯坦的手机(以 +7 9x 或 +7 7x 开头),但re
sintaxis 完全让我大吃一惊。
我想接受这种格式的数字:
+7 9XX XXXXXXX
+7 7XX XXXXXXX
7 7XX XXXXXXX
7 9XX XXXXXXX
8 9XX XXXXXXX (8 is domestic replace for country code)
8 7XX XXXXXXX
9XX XXXXXXX (9 numbers, no country code!)
7XX XXXXXXX
并将它们保存为7XXXXXXXXXX
格式(国家代码+ 10 个数字,没有+)
我写了这个:
re.search(r'^(\+?79?|\+?77?|89?|87?|9|7)(\d{9})$','+79221234567').groups()
我现在如何以需要的格式保存结果?我是否应该编写另一个正则表达式,将其应用于上面 ( re.search('(\d{10})$',result_above)
) 的正则表达式的结果,还是有更好的方法在一个正则表达式表达式中获取格式化结果?
PS:我的正则表达式适用于数字,但如果我用 - 或 () 输入数字,它将失败。我可以避免吗?