Verwenden ABC
und XYZ
als Anker mit Blick hinter und vorausschauenden Aussagen:
(?<=ABC).*?(?=XYZ)
Die (?<=...)
Blick hinter Behauptung paßt nur an der Stelle in dem Text, der von ABC
voraus. In ähnlicher Weise entspricht (?=XYZ)
dem Standort, der von XYZ
gefolgt wird. Zusammen bilden sie zwei Anker, die den Ausdruck .*
begrenzen, der allem entspricht.
Sie alle solche verankerte Textstücke mit re.findall()
finden:
for matchedtext in re.findall(r'(?<=ABC).*?(?=XYZ)', inputtext):
Wenn ABC
und XYZ
variabel sind, können Sie re.escape()
(zu verhindern, dass ihre Inhalte nicht interpretiert als Syntax für reguläre Ausdrücke) verwenden möchten, auf sie und interpolieren:
re.match(r'(?<={}).*?(?={})'.format(abc, xyz), inputtext)
Vielen Dank @Martijin Es funktioniert: D – sgp