3 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果您不僅要匹配其中的數(shù)字,,
而且如果這些數(shù)字必須遵守在每 3 位數(shù)字后添加逗號(hào)以供閱讀的標(biāo)準(zhǔn),請(qǐng)使用正則表達(dá)式:
r'sum (RM [0-9]{1,3}(:?,[0-9]{3})+(:?\.[0-9]+)?)'
說(shuō)明:
[0-9]{1,3}
[0-9]
如果您使用范圍內(nèi)的 1 到 3 位數(shù)字,\d
您還將接受 unicode 數(shù)字,例如:112233(:?,[0-9]{3})+
逗號(hào)后跟一組 3 個(gè) ascii 數(shù)字,重復(fù) 1 到 N 次,其中 N 是 int > 1(:?\.[0-9]+)?
最終一些小數(shù)部分
代碼:
import re
#to match only numbers with comma every 3 digits
regex = r'sum (RM [0-9]{1,3}(:?,[0-9]{3})+(:?\.[0-9]+)?)'
print(re.search(regex, 'sum RM 320,000.00').group(1) if re.search(regex, 'sum RM 320,000.00') else None)
print(re.search(regex, 'sum RM ,,,').group(1) if re.search(regex, 'sum RM ,,,') else None)
print(re.search(regex, 'sum RM 3,00').group(1) if re.search(regex, 'sum RM 3,00') else None)
print(re.search(regex, 'sum RM 3123,000').group(1) if re.search(regex, 'sum RM 3123,000') else None)
print(re.search(regex, 'sum RM 31,000').group(1) if re.search(regex, 'sum RM 31,000') else None)
print(re.search(regex, 'sum RM 312,000').group(1) if re.search(regex, 'sum RM 312,000') else None)
print(re.search(regex, 'sum RM 312,00').group(1) if re.search(regex, 'sum RM 312,00') else None)
輸出:
RM 320,000.00
None
None
None
RM 31,000
RM 312,000
None

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
re.search 返回您需要捕獲的匹配組:
import re
word = re.search(r'sum (RM \d+(?:,\d+)(?:.\d+)?)', 'sum RM 320,000.00')
print(word.group(1))
# RM 320,000.00

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
試試這個(gè):
import re
word = re.findall(r'sum (RM [0-9,.]*)', 'sum RM 320,000.00')
print(word)
添加回答
舉報(bào)