Ho qualche problema a far funzionare una regex Python durante la corrispondenza con un testo che si estende su più righe. Il testo di esempio è ('\ n' è una nuova riga)
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).
Vorrei catturare due cose: la parte "some_Varying_TEXT" e tutte le righe di testo maiuscolo che vengono due righe sotto di essa in un'unica acquisizione (posso rimuovere i caratteri di nuova riga in seguito). Ho provato con alcuni approcci:
re.compile(r"^>(\w+)$$([.$]+)^$", re.MULTILINE) # try to capture both parts
re.compile(r"(^[^>][\w\s]+)$", re.MULTILINE|re.DOTALL) # just textlines
e molte varianti di questo senza fortuna. L'ultimo sembra abbinare le righe di testo una per una, il che non è quello che voglio veramente. Riesco a prendere la prima parte, nessun problema, ma non riesco a catturare le 4-5 righe di testo maiuscolo. Vorrei che match.group (1) fosse some_Varying_Text e group (2) fosse line1 + line2 + line3 + ecc. Finché non si incontra la riga vuota.
Se qualcuno è curioso, dovrebbe essere una sequenza di aminoacidi che compongono una proteina.
>carattere principale . Dovrebbe?