Jer*_*hou 5 python string format localization numbers
我有一个号码12345,我想要结果'1,2345'。我尝试了以下代码,但失败了:
>>> n = 12345
>>> f"{n:,}"
'12,345'
Run Code Online (Sandbox Code Playgroud)
正则表达式将为您工作:
import re
def format_number(n):
return re.sub(r"(\d)(?=(\d{4})+(?!\d))", r"\1,", str(n))
Run Code Online (Sandbox Code Playgroud)
>>> format_number(123)
'123'
>>> format_number(12345)
'1,2345'
>>> format_number(12345678)
'1234,5678'
>>> format_number(123456789)
'1,2345,6789'
Run Code Online (Sandbox Code Playgroud)
解释:
匹配:
(\d)匹配一个数字...(?=(\d{4})+(?!\d))...后面跟着一组或多组恰好为 4 位的数字。代替:
\1,将匹配的数字替换为自身和,| 归档时间: |
|
| 查看次数: |
1237 次 |
| 最近记录: |