regulares - python metacaracter
Expresión regular para unir un punto (3)
"En el modo predeterminado, Dot (.) Coincide con cualquier carácter excepto una nueva línea. Si se ha especificado el indicador DOTALL, esto coincide con cualquier carácter, incluida una nueva línea". (Python Doc)
Entonces, si quiere evaluar dot literaly, creo que debería ponerlo entre corchetes:
>>> p = re.compile(r''/b(/w+[.]/w+)'')
>>> resp = p.search("blah blah blah [email protected] blah blah")
>>> resp.group()
''test.this''
Me preguntaba cuál es la mejor manera de hacer coincidir "test.this" de "bla, bla, bla, [email protected], bla, bla". Usando Python.
He intentado re.split(r"/b/w./w@")
¡Gracias!
A en regex es un metacarácter, se usa para unir cualquier personaje. Para hacer coincidir un punto literal, necesitas escapar de él, entonces /.
En tu regex
, necesitas escapar del dot(.) - "/."
o usarlo dentro de una character class - "[.]"
, ya que es un meta-personaje en expresiones regulares, que coincide con cualquier personaje.
Además, necesita /w+
lugar de /w
para hacer coincidir una o más palabras.
Ahora, si quieres test.this
contenido, split
no es lo que necesitas. split
dividirá su cadena alrededor de la test.this
. test.this
. Por ejemplo: -
>>> re.split(r"/b/w+/./w+@", s)
[''blah blah blah '', ''gmail.com blah blah'']
Puede usar re.findall
: -
>>> re.findall(r''/w+[.]/w+(?=@)'', s) # look ahead
[''test.this'']
>>> re.findall(r''(/w+[.]/w+)@'', s) # capture group
[''test.this'']