Tengo un poco de problemas para hacer que una expresión regular de Python funcione cuando se compara con texto que abarca varias líneas. El texto de ejemplo es ('\ n' es una nueva línea)
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).
Me gustaría capturar dos cosas: la parte 'some_Varying_TEXT' y todas las líneas de texto en mayúsculas que vienen dos líneas debajo en una captura (puedo eliminar los caracteres de nueva línea más adelante). Lo intenté con algunos enfoques:
re.compile(r"^>(\w+)$$([.$]+)^$", re.MULTILINE) # try to capture both parts
re.compile(r"(^[^>][\w\s]+)$", re.MULTILINE|re.DOTALL) # just textlines
y muchas variaciones del mismo sin suerte. El último parece coincidir con las líneas de texto una por una, que no es lo que realmente quiero. Puedo captar la primera parte, no hay problema, pero parece que no puedo captar las 4-5 líneas de texto en mayúsculas. Me gustaría que match.group (1) sea some_Varying_Text y group (2) sea line1 + line2 + line3 + etc hasta que se encuentre la línea vacía.
Si alguien tiene curiosidad, se supone que es una secuencia de aminoácidos que forman una proteína.
>
carácter principal . ¿Deberia?