pep8 avertissement sur les regex chaîne de caractères en Python, Eclipse
Pourquoi est pep8 en se plaignant de la chaîne suivante dans le code?
import re
re.compile("\d{3}")
L'avertissement-je recevoir:
ID:W1401 Anomalous backslash in string: '\d'. String constant might be missing an r prefix.
Pouvez-vous expliquer quel est le sens du message? Que dois-je modifier dans le code pour que l'avertissement W1401 est passé?
Le code passe les tests et s'exécute comme prévu. En outre \d{3}
est valide regex.
Vous devez vous connecter pour publier un commentaire.
"\d"
est la même que"\\d"
car il n'y a pas de séquence d'échappement pourd
. Mais il n'est pas clair pour le lecteur du code.Mais, pensez
\t
."\t"
représentent onglet caractère, tandis quer"\t"
représentent littérale\
ett
caractère.Donc utiliser des string quand tu veux dire littérale
\
etd
:ou d'échappement barre oblique inverse explicitement:
\d
n'est pas du tout le même que\\d
. L'ancien correspond à (Unicode) chiffres; ce dernier correspond à un antislash suivi d'd
. Ils ne sont pas équivalents. Pylint semble être dans la mauvaise ici.'\d' == '\\d'
en python shell interactif. Aussi'\t' == '\\t'
Python est impossible d'analyser
'\d'
comme une séquence d'échappement, c'est pourquoi il produit un avertissement.Après qu'il est passé vers le bas pour regex analyseur littéralement, fonctionne très bien comme un E. S. pour les regex.