我需要針對多個(獨佔 - 意味着匹配其中一個字符串的字符串不能匹配任何其他字符串)正則表達式的字符串,並根據匹配的哪一個執行不同的代碼段。我有什麼目前:如何通過Python搜索正則表達式匹配?
m = firstre.match(str)
if m:
# Do something
m = secondre.match(str)
if m:
# Do something else
m = thirdre.match(str)
if m:
# Do something different from both
除了醜陋,這段代碼對所有的正則表達式匹配它匹配即使其中一人(比如說firstre),這是低效的。我試圖使用:
elif m = secondre.match(str)
但獲悉if語句中不允許賦值。
有沒有一種優雅的方式來實現我想要的?
+1純pythonic迷人。就個人而言,我會把元組列表放在for語句之外,例如'match_functions =((f1,re1),(f2,re2),..)'並且爲myfunc,myre在match_functions:' – Kimvais 2010-01-08 14:45:48
不要忘記添加「break」來保存嘗試匹配其餘部分列表。 – 2010-01-08 14:46:26
編輯與意見的建議加真實的例子。 – 2010-01-08 14:55:05