学习爬虫正则表达式中遇到一个问题
返回的不是表达式括号的结果,括号失去了作用,换做findall就是正常的,指点一下,万分感谢
该回答引用GPTᴼᴾᴱᴺᴬᴵ
finditer方法返回一个可迭代的对象,该对象包含所有匹配结果的迭代器。每个匹配结果都是一个Match对象,您可以通过该对象获取匹配结果的详细信息,包括正则表达式中括号内的内容。
-
如果您发现finditer返回的Match对象中没有包含括号内的结果,那么很有可能是您的正则表达式没有正确的使用括号。请确保在正则表达式中正确使用括号来分组,并使用Match对象的group()或group(index)方法获取括号内的匹配结果。
例如:
import re
pattern = r'(\d+)-(\d+)'
text = '2010-2020'
# 使用finditer方法
for match in re.finditer(pattern, text):
# 获取括号内的结果
print(match.group(1), match.group(2))
# 使用findall方法
matches = re.findall(pattern, text)
for match in matches:
# 获取括号内的结果
print(match[0], match[1])
在上面的示例中,我们使用了一个包含括号的正则表达式来匹配text字符串中的数字范围。使用finditer方法迭代每个匹配结果,并使用group方法获取括号内的结果。使用findall方法获取所有匹配结果,并通过索引访问括号内的结果。