198 votes

DeprecationWarning: séquence d'échappement invalide - quoi utiliser à la place de \ d?

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

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

Mais quand je le lance, j'obtiens DeprecationWarning.

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

333voto

ACascarino Points 922

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

Déclarez votre modèle RegEx en tant que chaîne brute à la place en ajoutant r , comme ci-dessous:

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

Cela signifie également que vous pouvez également supprimer les échappements pour \n car ceux-ci seront simplement analysés en tant que caractères de nouvelle ligne par re .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X