我有一个文件,其中包括一堆像“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