Python格式电话号码

新手上路,请多包涵

我将如何格式化 10 位数字的字符串: 0123456789 电话号码格式:

(012) 345-6789

是否有特定的库可供使用或可以使用正则表达式?

我已经通过使用 re.sub('[^0-9]', '', '(012) 345-6789') 以相反的方式完成了它

原文由 Matrix21 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 537
2 个回答
import re
print('(%s) %s-%s' % tuple(re.findall(r'\d{4}$|\d{3}', '0123456789')))

这输出:

 (012) 345-6789

原文由 blhsing 发布,翻译遵循 CC BY-SA 4.0 许可协议

您还可以使用像 phonenumbers 这样的库?

安装它:

 pip install --user phonenumbers

代码示例:

 import phonenumbers
phonenumbers.format_number(phonenumbers.parse("0123456789", 'US'),
                           phonenumbers.PhoneNumberFormat.NATIONAL)

输出:

 '(012) 345-6789'

原文由 Rafael 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题