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.