Я анализирую файл и хочу проверить каждую строку на наличие нескольких сложных регулярных выражений. Как то так
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
...
, что выглядит странно.
Какой правильный способ сделать это?