regulares - reemplazar caracteres en python
Pep8 de advertencia en la cadena de expresiones regulares en Python, Eclipse (2)
Python no puede analizar ''/d''
como una secuencia de escape, por eso produce una advertencia.
Después de eso, se pasa literalmente al analizador de expresiones regulares, funciona bien como ES para las expresiones regulares.
¿Por qué pep8 se queja en la siguiente cadena en el código?
import re
re.compile("/d{3}")
La advertencia que recibo:
ID:W1401 Anomalous backslash in string: ''/d''. String constant might be missing an r prefix.
¿Puedes explicar cuál es el significado del mensaje? ¿Qué necesito cambiar en el código para que se pase la advertencia W1401 ?
El código pasa las pruebas y se ejecuta como se esperaba. Además, /d{3}
es una expresión regular válida.
"/d"
es igual que "//d"
porque no hay una secuencia de escape para d
. Pero no está claro para el lector del código.
Pero, considere /t
. "/t"
representa el carácter de tabulación, mientras que r"/t"
representa el carácter literal /
y t
.
Así que usa cadena cruda cuando te refieres a literal /
y d
:
re.compile(r"/d{3}")
o escape barra invertida explícitamente:
re.compile("//d{3}")