import re
string_to_check = "other_text...lalalaI want this partlalala...other_text"
p = re.compile("lalala(I want this part)lalala") # regex pattern
m = p.search(string_to_check) # use p.match if what you want is always at beginning of string
if m:
print m.group(1)
Bei dem Versuch, ein Perl-Programm zu Python zu konvertieren, die aus Modulen Funktionsnamen parsen, lief ich in dieses Problem, erhielt ich eine Fehlermeldung „Gruppe“ zu sagen war nicht definiert. Ich erkannte bald, dass die Ausnahme geworfen wurde, weil p. Übereinstimmung/p. Suche gibt 0 zurück, wenn keine übereinstimmende Zeichenfolge vorhanden ist.
So kann der Gruppenoperator nicht darauf funktionieren. Um eine Ausnahme zu vermeiden, überprüfen Sie, ob eine Übereinstimmung gespeichert wurde, und wenden Sie dann den Gruppenoperator an.
import re
filename = './file_to_parse.py'
p = re.compile('def (\w*)') # \w* greedily matches [a-zA-Z0-9_] character set
for each_line in open(filename,'r'):
m = p.match(each_line) # tries to match regex rule in p
if m:
m = m.group(1)
print m
Sehr schlaue Idee :) – Linh