ich in Python zu schreiben und lassen Sie uns sagen, ich habe eine Datei wie folgt aussehen:Python Regex geschweiften Klammern mehrzeilige
aaa
aaa "word" --sdsdrrr2 --sds {
test test
}
aaa "word2" --sdsdd sdsd {
fffsd
ssss
}
aaa "word3" -sdksdld sdsd
{
sdsdd
sdsddd
sdsdddd }
jetzt will ich Ausgang für „word2“ einschließlich Präfix und Suffix analysieren, so ausgegeben wird sein:
aaa "word2" --sdsdd sdsd {
fffsd
ssss
}
versucht, den folgenden Code:
f = open('/tmp/testt2')
for res in re.findall('aaa "word2" (.*?)}', f.read(), re.S):
print res
nur einige der Treffer Tipp ohne die zu sein Entkörnen und das Ende lockig.
Bitte beachten Sie:
- Anzahl der Linien zwischen den geschweiften Klammern ist nicht bekannt.
- Regex ist ein Muss
- Curly Klammern Positionen sind auch unbekannt (kann Abstand sein oder nicht, neue Zeile oder nicht usw.) wie in dem oben genannten Beispiel.
Vielen Dank für jede Hilfe,
Wenn Sie diese Regex kopieren, fehlt Ihnen die Öffnung '{'. Außerdem brauchen Sie [DOTALL] (https://docs.python.org/2/library/re.html#re.DOTALL) – RedX
Ich bin mir nicht sicher, aber wenn Sie den ganzen Wert brauchen, warum verwenden Sie eine einfangende Gruppe? Verwenden Sie 'aaa" word2 ". *?}' –