У меня возникли некоторые проблемы с настройкой регулярного выражения Python при сопоставлении с текстом, который занимает несколько строк. Текст примера ('\ n' является новой строкой)
some Varying TEXT\n
\n
DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF\n
[more of the above, ending with a newline]\n
[yep, there is a variable number of lines here]\n
\n
(repeat the above a few hundred times).
Я хотел бы захватить две вещи: часть 'some_Varying_TEXT' и все строки заглавного текста, которые идут на две строки ниже его в одном захвате (я могу удалить символы новой строки позже).
Я пробовал с несколькими подходами:
re.compile(r"^>(\w+)$$([.$]+)^$", re.MULTILINE) # try to capture both parts
re.compile(r"(^[^>][\w\s]+)$", re.MULTILINE|re.DOTALL) # just textlines
и множество вариантов без удачи. Последний, кажется, соответствует строкам текста одна за другой, что я не хочу. Я могу поймать первую часть, без проблем, но я не могу уловить 4-5 строк заглавного текста.
Мне бы хотелось, чтобы match.group (1) была some_Varying_Text, а group (2) - line1 + line2 + line3 + и т. Д., Пока не встретится пустая строка.
Если кому-то интересно, предполагается, что это последовательность аминокислот, из которых состоит белок.