Tengo un archivo estructurado así:de líneas múltiples expresiones regulares pitón
A: some text
B: more text
even more text
on several lines
A: and we start again
B: more text
more
multiline text
Estoy tratando de encontrar la expresión regular que va a dividir mi archivo de la siguiente manera:
>>>re.findall(regex,f.read())
[('some text','more text','even more text\non several lines'),
('and we start again','more text', 'more\nmultiline text')]
Hasta el momento, no tengo terminó con lo siguiente:
>>>re.findall('A:(.*?)\nB:(.*?)\n(.*?)',f.read(),re.DOTALL)
[(' some text', ' more text', ''), (' and we start again', ' more text', '')]
El texto multilínea no está atrapado. Supongo que es debido a que el calificador perezoso es muy vago y coger nada, pero me lo saco, la expresión regular se pone muy codicioso:
>>>re.findall('A:(.*?)\nB:(.*?)\n(.*)',f.read(),re.DOTALL)
[(' some text',
' more text',
'even more text\non several lines\nA: and we start again\nB: more text\nmore\nmultiline text')]
¿Alguien tiene una idea? Gracias !
Bienvenido a Stackoverflow! Este es un ejemplo de una pregunta realmente buena: especificaciones completas, código reproducible, un análisis preciso del problema, ¡excelente! –