2017-01-31 3 views
-1

ich mit Mustern wie diese txt habe:mehrzeilige Suche in TXT-Datei mit Python

... 
72 anything 
73 } 
74 something { 
75 something2 
76 something3 withVariableTextHere 
77 anything 
... 

Ich habe die Suche versucht, für: "something {\nsomething2\nsomething3)" und ich wahres Ergebnis mit re.findall, aber nachdem ich gefunden habe, das Muster möchte ich ganze Zeile # 76 drucken, weil ich nach "something3" Informationen brauche.

Hat jemand eine Idee, wie ich das tun könnte? Und ich möchte es mehrmals durch die gleiche Datei tun, im Wesentlichen, wenn Muster gefunden wird, möchte ich ganze dritte Zeile drucken.

Antwort

1

Sie können Erfassungsgruppen in Ihrer Regex verwenden. Zum Beispiel:

s = """anything 
} 
something { 
something2 
something3 withVariableTextHere 
anything""" 

re.findall("something {\nsomething2\nsomething3(.*)", s) 

nachgeben:

[' withVariableTextHere'] 

Kurz gesagt, es wird alles zurück, die den Teil der Regex in Klammern übereinstimmt, hier etwas vor einer neuen Zeile.

+0

Danke für Ihre Antwort, Derlin, das war, was ich gesucht habe. Nachdem du ein paar Tage damit verbracht hast, hast du mich gerettet :) – zpetricevic