我有一個文件,其中包括一堆像「size = XXX;」的字符串。我第一次嘗試python的re模塊,並被以下行爲迷惑了一下:如果我在正則表達式中使用'or'管道,我只能看到匹配的那一點返回。例如:re.findall沒有返回完全匹配?
>>> 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']
匹配的「size =」部分消失了。 (但它肯定用於搜索,否則會有更多結果)。我究竟做錯了什麼?
'(...)'定義了一個匹配組。你也可以使用'(size =(50 | 51))',你可以有兩個匹配組,第一個是全尺寸= 5X,第二個只是5X部分。 – korylprince