0
用4個模式處理,例如,下面是4種圖案中存在字符串和結果的列表被返回:Python的正則表達式:使用re.search(),並且如果語句一次
模式1:'A: 45'
- > 45(45 - 0)
模式2:'B: 34'
- > -34(0 - 34)
模式3:'A: 45, B: 34'
- > 11(45 - 34)
模式4:'B: 34, A: 45'
- > 11(45 - 34)
是否有可能只使用re.search()
一次和一個if
聲明來實現這一目標?如果不是,還有其他方法嗎?非常感謝!
我想出的方法是
match = (re.search(r'(A: (\d+))?(B: (\d+))?', str))
if match:
print(float(match.group(2)) - float(match.group(4)))
僅與所述第一3個條件優惠和將引發錯誤的所述第一條件要麼match.group(2)
或match.group(4)
是NaN
。
謝謝@Jan,這很鼓舞人心。只是想知道,有沒有辦法做到這一點只使用'if',否'elif'或'else'? – Map
爲什麼這是一個約束? –
我聞到作業... –