Tengo problemas para obtener una expresión regular de Python que funcione cuando se combina con texto que abarca varias líneas. El texto es ejemplo ('\ n' es un salto de línea)Expresión regular que coincide con un bloque de texto de líneas múltiples
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 se produce dos líneas debajo de ella en una captura (puedo quitar los caracteres de nueva línea más tarde). He intentado 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 una gran cantidad de variaciones del presente sin suerte. El último parece coincidir con las líneas de texto, una por una, que no es lo que realmente quiero. Puedo ver la primera parte, no hay problema, pero parece que no puedo captar las 4 o 5 líneas de texto en mayúsculas. Me gustaría que match.group (1) sea un _ Variable _ El texto y el grupo (2) sean 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.
¿Hay algo más en el archivo además de la primera línea y el texto en mayúsculas? No estoy seguro de por qué usaría una expresión regular en lugar de dividir todo el texto en caracteres de nueva línea y tomar el primer elemento como "some_Varying_TEXT". – UncleZeiv
sí, la expresión regular es la herramienta incorrecta para esto. – hop
Su texto de muestra no tiene un carácter '>' inicial. ¿Deberia? – MiniQuark