如何編寫正則表達式可以1.
匹配可能包含或不包含逗號或小數的貨幣,2.
僅匹配貨幣代碼。我看到的大多是匹配的貨幣符號。 我希望能夠從一個完整的文本相匹配的貨幣['300,000.00']
和貨幣代碼['USD']
像這樣:Python正則表達式匹配有或沒有逗號或小數的貨幣
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 +)?)')'工作 - 檢查出來! – wolframalpha
@wolframalpha匹配有或沒有小數,但不匹配逗號,如'1,000.00' – DougKruger
're.compile('(\ d +(?:[\。,] \ d +)*)')'如果您想要多個逗號和十進制點! – wolframalpha