Joe*_*Joe 22 python format formatting standards libs
如果我只有一个10位或更多位的字符串,我该如何将其格式化为电话号码?
一些微不足道的例子:
555-5555
555-555-5555
1-800-555-5555
Run Code Online (Sandbox Code Playgroud)
我知道这些并不是格式化它们的唯一方法,如果我自己做的话,我很可能会把事情搞清楚.是否有python库或格式化电话号码的标准方法?
kus*_*sut 38
用于图书馆:phonenumbers(pypi,source)
用于解析,格式化,存储和验证国际电话号码的Google公共库的Python版本.
自述文件不足,但我发现代码记录良好.
utd*_*mir 23
看起来像您的示例格式化为三位数组除了最后一个,您可以编写一个简单的函数,使用千位分隔符并添加最后一位数:
>>> def phone_format(n):
... return format(int(n[:-1]), ",").replace(",", "-") + n[-1]
...
>>> phone_format("5555555")
'555-5555'
>>> phone_format("5555555")
'555-5555'
>>> phone_format("5555555555")
'555-555-5555'
>>> phone_format("18005555555")
'1-800-555-5555'
Run Code Online (Sandbox Code Playgroud)
这是一个改编自utdemir 的解决方案的解决方案,该解决方案适用于 Python 2.6,因为“,”格式化程序是 Python 2.7 中的新功能。
def phone_format(phone_number):
clean_phone_number = re.sub('[^0-9]+', '', phone_number)
formatted_phone_number = re.sub("(\d)(?=(\d{3})+(?!\d))", r"\1-", "%d" % int(clean_phone_number[:-1])) + clean_phone_number[-1]
return formatted_phone_number
Run Code Online (Sandbox Code Playgroud)