不正なバックスラッシュです。バックスラッシュによるエスケープが正しく行われません。raw文字列接頭詞「r」を忘れていないか確認してください。
エラー例
match = re.compile("\[(.*?)\]").search(text)
解決方法1 raw文字列化
文字列の先頭に「r」を付与してraw文字列にし、エスケープシーケンスを無効にします。 エスケープ文字(\r\nの改行など)を扱う場合、この方法は使用できません。match = re.compile(r"\[(.*?)\]").search(text)
解決方法2 バックスラッシュでエスケープ
バックスラッシュを重ね、バックスラッシュとして認識させます。match = re.compile("\\[(.*?)\\]").search(text)
raw文字列化する際の注意
「\r\n(改行)」のようなエスケープ文字を扱う場合、エラーメッセージ通りにraw文字列にすると「\r\n」が改行として認識されません。修正前(エラーの出る状態)
match = re.compile("\[(.*?)\]\r\n").search(text)
誤った修正方法
match = re.compile(r"\[(.*?)\]\r\n").search(text)
正しい修正方法
match = re.compile("\\[(.*?)\\]\r\n").search(text)
検証環境
- Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
- pylint 1.6.5
- Microsoft Windows 7 Professional Service Pack 1 (Microsoft Windows NT 6.1 (7601))