Python正则表达式AttributeError:'NoneType'对象没有属性'group'

Win*_*ags 7 python regex attributeerror

我使用Regex从网页上的搜索框中检索某些内容selenium.webDriver.

searchbox = driver.find_element_by_class_name("searchbox")
searchbox_result = re.match(r"^.*(?=(\())", searchbox).group()
Run Code Online (Sandbox Code Playgroud)

只要搜索框返回与Regex匹配的结果,代码就会起作用.但如果搜索框回复字符串,"No results"我会收到错误:

AttributeError:'NoneType'对象没有属性'group'

如何让脚本处理这种"No results"情况?

Win*_*ags 10

我设法找出这个解决方案,它与忽略group()搜索框回复的情况有关"No results",因此与正则表达式不匹配.

try:
    searchbox_result = re.match("^.*(?=(\())", searchbox.group()
except AttributeError:
    searchbox_result = re.match("^.*(?=(\())", searchbox)
Run Code Online (Sandbox Code Playgroud)

或者干脆:

try:
    searchbox_result = re.match("^.*(?=(\())", searchbox.group()
except:
    searchbox_result = None
Run Code Online (Sandbox Code Playgroud)


Mar*_*oun 9

当你做

re.match("^.*(?=(\())", search_result.text)
Run Code Online (Sandbox Code Playgroud)

然后如果没有找到匹配项,None将返回:

None如果字符串与模式不匹配,则返回;请注意,这与零长度匹配不同。

在申请之前,您应该检查是否获得了结果group

res = re.match("^.*(?=(\())", search_result.text)
if res:
    # ...
Run Code Online (Sandbox Code Playgroud)