複数行にまたがるテキストと照合するときに、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」部分と、その 2 行下にあるすべての大文字テキスト行を 1 回のキャプチャでキャプチャしたいと思います (後で改行文字を取り除くことができます)。私はいくつかのアプローチで試しました:
re.compile(r"^>(\w+)$$([.$]+)^$", re.MULTILINE) # try to capture both parts
re.compile(r"(^[^>][\w\s]+)$", re.MULTILINE|re.DOTALL) # just textlines
運が悪いと、これの多くのバリエーションがあります。最後のものは、テキストの行を 1 行ずつ一致させているように見えますが、これは私が本当に望んでいるものではありません。最初の部分は問題なくキャッチできますが、4 ~ 5 行の大文字テキストをキャッチできないようです。空の行が検出されるまで、match.group(1) を some_Varying_Text に、group(2) を line1+line2+line3+etc にしたいと思います。
興味のある方は、タンパク質を構成するアミノ酸の配列であると思われます.