Python有效地将货币符号和数字拆分为一个字符串
问题内容:
我有一个类似'$200,000,000'
或的字符串'Yan300,000,000'
我想拆分货币和数字,并输出一个tuple ('$', '200000000')
,而不','
包含数字字符串。
目前,我正在使用以下脚本,该脚本正在运行:
def splitCurrency(cur_str):
cuttingIdx = 0
for char in cur_str:
try:
int(char)
break
except ValueError:
cuttingIdx = cuttingIdx + 1
return (cur_str[0:cuttingIdx].strip(),
cur_str[cuttingIdx:len(cur_str)].replace(',',''))
我想避免使用for循环和try-except来提高性能和可读性。有什么建议?
问题答案:
>>> import re
>>> string = 'YAN300,000,000'
>>> match = re.search(r'([\D]+)([\d,]+)', string)
>>> output = (match.group(1), match.group(2).replace(',',''))
>>> output
('YAN', '300000000')
(感谢zhangyangyu指出我没有完全回答问题)