Python regex AttributeError: 'NoneType' object has no attribute 'group'
Python regex AttributeError: 'NoneType' object has no attribute 'group'
我使用正则表达式从 selenium.webDriver
网页的搜索框中检索某些内容。
searchbox = driver.find_element_by_class_name("searchbox")
searchbox_result = re.match(r"^.*(?=(\())", searchbox).group()
只要搜索框 returns 结果与正则表达式匹配,代码就可以正常工作。但是如果搜索框回复字符串 "No results"
我得到错误:
AttributeError: 'NoneType' object has no attribute 'group'
如何让脚本处理 "No results"
情况?
当你这样做时
re.match("^.*(?=(\())", search_result.text)
然后如果没有找到匹配项,将返回 None
:
Return None
if the string does not match the pattern; note that this is different from a zero-length match.
在应用 group
之前,您应该检查是否得到了结果:
res = re.match("^.*(?=(\())", search_result.text)
if res:
# ...
我设法找到了这个解决方案:在搜索框回复为 "No results"
因此与正则表达式不匹配的情况下省略 group()
。
try:
searchbox_result = re.match("^.*(?=(\())", searchbox).group()
except AttributeError:
searchbox_result = re.match("^.*(?=(\())", searchbox)
出现此错误是因为您的正则表达式与您的目标值不匹配。确保您是使用正确形式的正则表达式还是使用 try-catch 块来防止该错误。
try:
pattern = r"^.*(?=(\())"
searchbox_result = re.match(pattern, searchbox).group()
except AttributeError:
print("can't make a group")
谢谢
我使用正则表达式从 selenium.webDriver
网页的搜索框中检索某些内容。
searchbox = driver.find_element_by_class_name("searchbox")
searchbox_result = re.match(r"^.*(?=(\())", searchbox).group()
只要搜索框 returns 结果与正则表达式匹配,代码就可以正常工作。但是如果搜索框回复字符串 "No results"
我得到错误:
AttributeError: 'NoneType' object has no attribute 'group'
如何让脚本处理 "No results"
情况?
当你这样做时
re.match("^.*(?=(\())", search_result.text)
然后如果没有找到匹配项,将返回 None
:
Return
None
if the string does not match the pattern; note that this is different from a zero-length match.
在应用 group
之前,您应该检查是否得到了结果:
res = re.match("^.*(?=(\())", search_result.text)
if res:
# ...
我设法找到了这个解决方案:在搜索框回复为 "No results"
因此与正则表达式不匹配的情况下省略 group()
。
try:
searchbox_result = re.match("^.*(?=(\())", searchbox).group()
except AttributeError:
searchbox_result = re.match("^.*(?=(\())", searchbox)
出现此错误是因为您的正则表达式与您的目标值不匹配。确保您是使用正确形式的正则表达式还是使用 try-catch 块来防止该错误。
try:
pattern = r"^.*(?=(\())"
searchbox_result = re.match(pattern, searchbox).group()
except AttributeError:
print("can't make a group")
谢谢