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指出我没有完全回答问题)