如何编写正则表达式,以便
我想能够从完整的文本中匹配货币
1.
匹配可能包含逗号或小数点的货币和2.
仅匹配货币代码。目前我看到的大多数是匹配货币符号的。我想能够从完整的文本中匹配货币
['300,000.00']
和货币代码['USD']
,例如:
Userid 9XXXX219 sales USD300,000.00 On 01-JUL-2016 08:34:32
到目前为止,我尝试了这个正则表达式,但它只匹配带小数点的货币,而不是没有小数点或带逗号的货币:s = 'USD1 USD1.00 USD100.00 USD1,000 CAD1,000.00'
re.findall(r'\d+\.\d+', s)
#matches
['1.00', '100.00', '000.00']
#should not match any other thing e.g. 1XXXX324
#instead of this:
['1','1.00', '100.00', '1,000', '1,000.00']
如何编写另一个正则表达式模式来仅匹配货币代码?即:
['USD', 'USD', 'USD', 'USD','CAD']
re.compile('(\d+(?:[\.,]\d+)?)')
已经工作 - 快来验证! - Devi Prasad Khatua1,000.00
。 - DougKrugerre.compile('(\d+(?:,\d+)*(?:\.\d+)?)')
如果你想要多个逗号和单个小数点(这更有意义)。 - Devi Prasad Khatua1XXXX324
匹配为['1', '324']
,能否去除与货币不同的任何其他内容? - DougKruger