我试图从一个字符串中提取一组数据,该字符串可以匹配三种模式中的一种。我有一个编译正则表的列表。我想穿过他们(按顺序),并与第一场比赛。从一批正则表达式中取得第一个成功匹配
regexes = [
compiled_regex_1,
compiled_regex_2,
compiled_regex_3,
]
m = None
for reg in regexes:
m = reg.match(name)
if m: break
if not m:
print 'ARGL NOTHING MATCHES THIS!!!'
这应该工作(尚未测试),但它非常难看。有没有更好的方法来煮沸一个循环,当它成功时会中断,或者当它没有时会发生爆炸?
可能有一些特定于re
的东西,我不知道它允许您测试多种模式。
+1正确的,但我已经得到的印象是,对-else结构被认为是混乱,尽管许多情况下,它到底是什么你希望它似乎皱起了眉头(但我很想被驳斥)。 – msw 2010-09-04 14:18:23
不知道那个。尽管我的眼睛总是将'else'与'try'联系起来,除了'语句外,它用'try' ...'把我赶出去了。 – 2010-09-04 14:19:45
我已经至少三次了解到'for..else' ...我一直在忘记它。这只是不好的命名,但它确实工作。谢谢。 – Oli 2010-09-04 14:23:12