web-dev-qa-db-fra.com

DeprecationWarning: séquence d'échappement non valide - que faut-il utiliser à la place de \ d?

J'ai rencontré un problème avec le module re dans Python 3.6.5. J'ai ce motif dans mon expression régulière:

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

Mais quand je le lance, je reçois un DeprecationWarning.

J'ai cherché le problème sur SO , et je n'ai pas trouvé de réponse, en fait - que devrais-je utiliser à la place de \d+? Juste [0-9]+ ou peut-être autre chose?

45
mchfrnc

Python 3 interprète les littéraux de chaîne comme des chaînes Unicode. Par conséquent, votre\d est traité comme un caractère Unicode échappé.

Déclarez votre modèle RegEx en tant que chaîne brute en préfixant r, comme ci-dessous:

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

Cela signifie également que vous pouvez supprimer les échappements pour \n, car ils seront simplement analysés comme des caractères de nouvelle ligne par re.

78
ACascarino