2016-10-28 9 views
0

を追加したとき、私はこの機能を持っていませんお願い助けて?「NoneType」オブジェクトには、属性「グループ」私はグループ

+3

're.search'の呼び出しで何も見つかってはいけません。 'line'とは何ですか? –

+2

'for line in urls'は行間を反復しません。 – user2357112

+0

入力、予想出力、実際の出力を含む[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を投稿する必要があります。入力文字列に対して正規表現をテストするためのオンラインツールがあります。 – CAB

答えて

1

これは、定義した正規表現が入力した文字列と一致していないことを示します.Nullオブジェクトが作成され、Noneオブジェクトからグループを取得すると、発生したエラーが発生します。

match = re.search(r"(?<=GET).+(?= HTTP)", line) 
if match is not None: 
    url = match.group(1) 
else: 
    #Some code you want if the regex does not match 

編集:この私たちに次のコードを防ぐために、私はまた、これははるかにeffecientあるので、ループの外で、あなたの正規表現をコンパイルすることをお勧めします。

+0

これは正しいですが、彼のコードの_true_エラーには対処しません。これは、実際にURLの単一の文字だったとき、 'line'がURL全体であると思ったことでした。 –

+0

はい、あなたが 'line in open(filename、 'r')'が必要なような行を繰り返す場合は、 –

+0

true、それは見えませんでした.read()の後に.readlines – Mathyn

関連する問題