亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用正則表達式在python中的特定字符串后查找帶逗號的數字?

如何使用正則表達式在python中的特定字符串后查找帶逗號的數字?

達令說 2021-12-17 15:52:11
如何使用正則表達式python3在某些字符串后查找帶逗號的數字?import reword = re.search(r'sum RM (\d+) \d+(?:,\d+)?', 'sum RM 320,000.00')print(word) Expected: RM 320,000.00
查看完整描述

3 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

如果您不僅要匹配其中的數字,,而且如果這些數字必須遵守在每 3 位數字后添加逗號以供閱讀的標準,請使用正則表達式:

r'sum (RM [0-9]{1,3}(:?,[0-9]{3})+(:?\.[0-9]+)?)'

說明:

  • [0-9]{1,3}[0-9]如果您使用范圍內的 1 到 3 位數字,\d您還將接受 unicode 數字,例如:112233

  • (:?,[0-9]{3})+ 逗號后跟一組 3 個 ascii 數字,重復 1 到 N 次,其中 N 是 int > 1

  • (:?\.[0-9]+)? 最終一些小數部分

代碼:

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


查看完整回答
反對 回復 2021-12-17
?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

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


查看完整回答
反對 回復 2021-12-17
?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

試試這個:


import re

word = re.findall(r'sum (RM [0-9,.]*)', 'sum RM 320,000.00')

print(word)


查看完整回答
反對 回復 2021-12-17
  • 3 回答
  • 0 關注
  • 465 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號