我有一个文件,其中包含一堆字符串,例如“size=XXX;”。我第一次尝试 python 的 re 模块并且对以下行为有点迷惑:如果我在正则表达式中使用管道表示“或”,我只会看到返回的那部分匹配。例如:
>>> 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=”部分消失了。(但它肯定会在搜索中使用,否则会有更多结果)。我究竟做错了什么?