文字列リテラルでサポートされていないエスケープシーケンスです。
エラー例
# Unsupported escape sequence in string literalPylance (reportInvalidStringEscapeSequence)
match = re.compile("\[(.*?)\]").search(text)
解決方法1 バックスラッシュを二つでエスケープ
バックスラッシュを重ね、バックスラッシュとして認識させます。match = re.compile("\\[(.*?)\\]").search(text)
解決方法2 raw文字列化
文字列の先頭に「r」を付与してraw文字列にし、エスケープシーケンスを無効にします。 エスケープ文字(\r\nの改行など)を扱う場合、この方法は使用できません。match = re.compile(r"\[(.*?)\]").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.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
- Visual Studio Code Version 1.48.0 (user setup)
- Visual Studio Code Extension - Python 2020.8.101144
- Visual Studio Code Extension - Pylance 2020.8.1
- Microsoft Windows 10 Pro Version 1909 OS Build 18363.1016