re.search(和re.findall())中的匹配不同

问题描述 投票:0回答:1

在 Python 3.x 代码中

import re
link = 'http://py4e-data.dr-chuck.net/known_by_Tamlah.html'
print(re.search('by_(.*).h', link).group())
print(re.findall('by_(.*).h', link))

我正在尝试在链接中查找名称。 工作成果。

by_Tamlah.h
['Tamlah']

正则表达式相同,功能不同。问题是为什么re.search()函数不理解字符串提取start,end正则表达式()?正确的结果是Tamlah

python-3.x
1个回答
0
投票

根据

Match.group()
的文档:

...

如果没有参数,group1 默认为零(返回整个匹配项)。

...

因此

re.search("by_(.*).h", link).group()
返回整场比赛,包括
by_
.h

如果您指定组,例如:

print(re.search("by_(.*).h", link).group(1))

然后只打印第一个捕获组:

Tamlah
© www.soinside.com 2019 - 2024. All rights reserved.