回答:
Python 3は、文字列リテラルをUnicode文字列として解釈するため\d
、エスケープされたUnicode文字として扱われます。
r
以下のように、先頭にを追加することにより、RegExパターンを生の文字列として宣言します。
r'\nRevision: (\d+)\n'
これは、エスケープをで\n
改行文字として解析するだけなので、エスケープもドロップできることを意味しますre
。
\d
と、認識されないエスケープシーケンスとして扱われるため、変更されません。Python 3.6以降、DeprecationWarningが提供されています。Pythonの将来のバージョンでは、SyntaxErrorになります。ドキュメントの「2.4.1。文字列とバイトリテラル」の詳細。
'\\d'
。