alerte pep8 sur la chaîne regex en Python, Eclipse
pourquoi pep8 se plaint-il sur la chaîne suivante du code?
import re
re.compile("d{3}")
l'avertissement que je reçois:
ID:W1401 Anomalous backslash in string: 'd'. String constant might be missing an r prefix.
pouvez-vous expliquer ce que signifie le message? Que dois-je modifier dans le code pour que l'avertissement W1401 est-il passé?
le code passe les tests et fonctionne comme prévu. En outre d{3} est un regex valide.
2 réponses
"\d" est comme "\d" parce qu'il n'y a pas de séquence d'échappement pour d. Mais il n'est pas clair pour le lecteur de code.
mais, considérer \t. "\t" représentent onglet caractère, tandis que r"\t" représentent littérale \ et t personnage.
utilisez donc la chaîne brute quand vous voulez dire littéral \ et d:
re.compile(r"\d{3}")
ou d'échappement barre oblique inverse explicitement:
re.compile("\d{3}")
Python est incapable de parser '\d' comme une séquence d'échappement, c'est pourquoi il produit un avertissement.
après cela, il est transmis à regex parser littéralement, fonctionne très bien comme un E. S. pour regex.