Мне нужно попробовать строку с несколькими (исключительными - это означает, что строка, соответствующая одному из них, не может соответствовать ни одному из других) регулярных выражений, и выполнить другой фрагмент кода в зависимости от того, к какому из них он подходит. Что у меня сейчас есть:
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.
Есть ли элегантный способ добиться того, чего я хочу?