Я разбираю файл, и я хочу проверить каждую строку на несколько сложных регулярных выражений. Что-то вроде этого
if re.match(regex1, line): do stuff
elif re.match(regex2, line): do other stuff
elif re.match(regex3, line): do still more stuff
...
Конечно, чтобы сделать материал, мне нужны объекты соответствия. Я могу думать только о трех возможностях, каждый из которых оставляет желать лучшего.
if re.match(regex1, line):
m = re.match(regex1, line)
do stuff
elif re.match(regex2, line):
m = re.match(regex2, line)
do other stuff
...
который требует выполнения сложного соответствия дважды (это длинные файлы и длинные регулярные выражения:/)
m = re.match(regex1, line)
if m: do stuff
else:
m = re.match(regex2, line)
if m: do other stuff
else:
...
который становится ужасным, когда я отступаю дальше и дальше.
while True:
m = re.match(regex1, line)
if m:
do stuff
break
m = re.match(regex2, line)
if m:
do other stuff
break
...
который выглядит просто странно.
Каков правильный способ сделать это?