Nun möchte ich aber alle groups haben, geht das?If a group matches multiple times, only the last match is accessible:
Also konkret:
Code: Alles auswählen
Einkaufsliste
3x a
2x b
4x c
Summe: 30
herausbekommen. Mein re findet allerdings nur `4 c`.
Nun möchte ich aber alle groups haben, geht das?If a group matches multiple times, only the last match is accessible:
Code: Alles auswählen
Einkaufsliste
3x a
2x b
4x c
Summe: 30
Code: Alles auswählen
>>> text = '''3x a
... 2x b
... 4x c'''
>>> for line in text.splitlines():
... print re.findall(r'(\d)x ([a-zA-Z])', line)
...
[('3', 'a')]
[('2', 'b')]
[('4', 'c')]
Code: Alles auswählen
2x f
Einkaufsliste
3x a
2x b
4x c
Summe: 30
7x f
Code: Alles auswählen
$ ./extract_contents.py testdatei --start='Einkaufsliste\n' --end='\nSumme: \d+?'
3x a
2x b
4x c
Code: Alles auswählen
def extract_contents(source, start, end):
seek_start = re.search(start, source).end()
seek_end = re.search(end, source).start()
return source[seek_start:seek_end]
Dann sollte man vorher die Datei einlesen und die Daten als Funktionsparameter weitergebenderdon hat geschrieben:Ganz einfach: Weil ich davon ausgegangen bin, dass du mit Dateien arbeitest.