web-dev-qa-db-ja.com

Python regex AttributeError: 'NoneType' object has no attribute 'group'

Regexを使用して、Selenium.webDriverを含むWebページの検索ボックスから特定のコンテンツを取得します。

searchbox = driver.find_element_by_class_name("searchbox")
searchbox_result = re.match(r"^.*(?=(\())", searchbox).group()

検索ボックスが正規表現に一致する結果を返す限り、コードは機能します。しかし、検索ボックスが文字列"No results"で応答すると、エラーが発生します。

AttributeError: 'NoneType'オブジェクトには属性 'group'がありません

スクリプトで"No results"の状況を処理するにはどうすればよいですか?

7
Winterflags

あなたがするとき

re.match("^.*(?=(\())", search_result.text)

その後、一致が見つからなかった場合、 None が返されます。

文字列がパターンに一致しない場合はNoneを返します。これは長さがゼロの一致とは異なることに注意してください。

groupを適用する前に、結果が得られたことを確認する必要があります。

res = re.match("^.*(?=(\())", search_result.text)
if res:
    # ...
4
Maroun