从一批正则表达式中获取第一个成功的匹配

Oli*_*Oli 3 python regex

我正在尝试从一个可以匹配三种模式之一的字符串中提取数据集.我有一个已编译的正则表达列表.我想通过他们(按顺序)和第一场比赛.

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!!!'
Run Code Online (Sandbox Code Playgroud)

这应该工作(尚未测试),但它非常难看.有没有更好的方法来煮沸一个循环,当它成功时会中断,或者当它没有时会爆炸?

可能有一些re我不知道的特定内容,允许您测试多个模式.

nmi*_*els 6

您可以使用循环的else子句for:

for reg in regexes:
    m = reg.match(name)
    if m: break
else:
    print 'ARGL NOTHING MATCHES THIS!!!'
Run Code Online (Sandbox Code Playgroud)