重新搜索仅匹配字符串中的第一个匹配项。您需要finditer还是findall。
研究
扫描字符串以查找正则表达式模式产生匹配项的 第一个位置
,然后返回相应的MatchObject实例。如果字符串中没有位置与模式匹配,则返回None;否则,返回None。请注意,这与在字符串中的某个点找到零长度匹配不同。
Finditer返回目标字符串中所有位置的匹配对象,从而产生一个迭代器,而findall返回所有匹配项的子字符串。
>>> import re>>> re.findall('a', 'ababababa')['a', 'a', 'a', 'a', 'a']>>> x = list(re.finditer('a', 'ababababa'))>>> x[<_sre.SRE_Match object; span=(0, 1), match='a'>, <_sre.SRE_Match object; span=(2, 3), match='a'>, <_sre.SRE_Match object; span=(4, 5), match='a'>, <_sre.SRE_Match object; span=(6, 7), match='a'>, <_sre.SRE_Match object; span=(8, 9), match='a'>]>>> x[0].group()'a'


