re.findall-nicht wieder in voller übereinstimmung?

Ich habe eine Datei, die enthält eine Reihe von Zeichenfolgen wie "size=XXX;". Ich versuche, python-re-Modul zum ersten mal und bin ein wenig verwirrt durch das folgende Verhalten: wenn ich ein Rohr für 'oder' in einem regulären Ausdruck, ich sehe nur, dass etwas von der übereinstimmung zurückgegeben. E. g.:

>>> myfile = open('testfile.txt','r').read()
>>> print re.findall('size=50;',myfile)
['size=50;', 'size=50;', 'size=50;', 'size=50;']
>>> print re.findall('size=51;',myfile)
['size=51;', 'size=51;', 'size=51;']
>>> print re.findall('size=(50|51);',myfile)
['51', '51', '51', '50', '50', '50', '50']
>>> print re.findall(r'size=(50|51);',myfile)
['51', '51', '51', '50', '50', '50', '50']

Den "size=" Teil des Spiels Weg ist. (Aber es wird sicherlich in der Suche verwendet, andernfalls würde es zu mehr Ergebnissen). Was mache ich falsch?

InformationsquelleAutor Ben S. | 2013-08-25
Schreibe einen Kommentar