|
发表于 2023-8-21 18:45:47
|
显示全部楼层
本帖最后由 阿奇_o 于 2023-8-21 18:57 编辑
不是re.search()返回最后一次匹配结果,而是你这里的特殊情况 让 re.search().group(1) 刚好是最后一个匹配到的字母a
re.search()它返回的始终是第一次匹配的“Match对象” 。 举个例子:- >>> re.search("([abc]+)*([fb]+)", 'ababbcabfbdsdfc')
- <re.Match object; span=(0, 10), match='ababbcabfb'> #这就是re.Match对象,注意看它匹配到了哪些字符
- >>> re.search("([abc]+)*([fb]+)", 'ababbcabfbdsdfc').group()
- 'ababbcabfb' # 这个就是它匹配到的结果
- >>> re.search("([abc]+)*([fb]+)", 'ababbcabfbdsdfc').group(1)
- 'ababbcab'
- >>> re.search("([abc]+)*([fb]+)", 'ababbcabfbdsdfc').group(2)
- 'fb'
- >>>
复制代码
另外你可以对比一下:- >>> re.search("([abc])+([fb])+", 'ababbcabfbdsdfc')
- <re.Match object; span=(0, 10), match='ababbcabfb'>
- >>> re.search("([abc])+([fb])+", 'ababbcabfbdsdfc').group()
- 'ababbcabfb'
- >>> re.search("([abc])+([fb])+", 'ababbcabfbdsdfc').group(1)
- 'b'
- >>> re.search("([abc])+([fb])+", 'ababbcabfbdsdfc').group(2)
- 'b'
- >>> re.search("([abc])+([fb])+", 'ababbcabfbdsdfc').group(3)
- Traceback (most recent call last):
- File "<pyshell#21>", line 1, in <module>
- re.search("([abc])+([fb])+", 'ababbcabfbdsdfc').group(3)
- IndexError: no such group
- >>>
复制代码
|
|