我需要针对多个(独占 - 意味着匹配其中一个字符串的字符串不能匹配任何其他字符串)正则表达式的字符串,并根据匹配的哪一个执行不同的代码段。我有什么目前:如何通过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