Ich habe eine Datei wie folgt strukturiert:mehrzeilige python regex
A: some text
B: more text
even more text
on several lines
A: and we start again
B: more text
more
multiline text
Ich versuche, die regex zu finden, die meine Datei wie folgt aufgeteilt werden:
>>>re.findall(regex,f.read())
[('some text','more text','even more text\non several lines'),
('and we start again','more text', 'more\nmultiline text')]
weit Also, ich habe endete mit dem Folgenden:
>>>re.findall('A:(.*?)\nB:(.*?)\n(.*?)',f.read(),re.DOTALL)
[(' some text', ' more text', ''), (' and we start again', ' more text', '')]
Der mehrzeilige Text wird nicht abgefangen. Ich denke, weil die faule Qualifier wirklich faul ist und nichts fangen, aber ich nehme es aus, die Regex wirklich gierig bekommt:
>>>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')]
Hat jemand eine Idee? Vielen Dank !
Willkommen bei Stackoverflow! Dies ist ein Beispiel für eine wirklich gute Frage - komplette Spezifikationen, reproduzierbarer Code, eine genaue Analyse des Problems - großartig! –