我在这里遇到了代码:
>>> import urllib, re
>>> prefix = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing="
>>> findnothing = re.compile(r"nothing is (\d+)").search
>>> nothing = '12345'
>>> while True:
... text = urllib.urlopen(prefix + nothing).read()
... print text
... match = findnothing(text)
... if match:
... nothing = match.group(1)
... print " going to", nothing
... else:
... break
1
中的match.group(1)
是什么意思?
答案 0 :(得分:4)
1
中的match.group(1)
代表第一个带括号的子组。在你的情况下,第一个。
the official documentation re.MatchObject.group()
对{{3}}进行了详细介绍,并以示例进行了最佳说明:
>>> m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")
>>> m.group(0) # The entire match
'Isaac Newton'
>>> m.group(1) # The first parenthesized subgroup.
'Isaac'
>>> m.group(2) # The second parenthesized subgroup.
'Newton'
>>> m.group(1, 2) # Multiple arguments give us a tuple.
('Isaac', 'Newton')
答案 1 :(得分:2)
1表示组中的数字 - 由括号对表示 - 在表达中。您的表达式只有一个组,但想象一下将"123 456"
与r"(\d+) (\d+)"
匹配:group(1)
为"123"
,group(2)
为"456"
和{{ 1}}始终是整个匹配,因此group(0)
。