在匹配跨多行的文本时,我在让 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+etc 直到遇到空行。
如果有人好奇,它应该是构成蛋白质的氨基酸序列。