web-dev-qa-db-ja.com

DeprecationWarning:無効なエスケープシーケンス-\ dの代わりに何を使用しますか?

Python 3.6.5のreモジュールで問題が発生しました。私の正規表現には次のパターンがあります。

'\\nRevision: (\d+)\\n'

しかし、実行すると、DeprecationWarningが表示されます。

私は SOの問題 を検索しましたが、実際には答えが見つかりませんでした-\d+の代わりに何を使うべきですか?ただ[0-9]+または多分何か?

45
mchfrnc

Python 3は文字列リテラルをUnicode文字列として解釈するため、\ dはエスケープされたUnicode文字として扱われます。

以下のように、rを前に付けることで、RegExパターンを生の文字列として宣言します。

r'\nRevision: (\d+)\n'

これはまた、\nのエスケープも削除できることを意味します。これらは、reによって改行文字として解析されるだけです。

78
ACascarino