2012-03-07 10 views

Respuesta

11

El motor de expresiones regulares de Python no es compatible con eso; vea §7.2.1 "Regular Expression Syntax" in the Python documentation para una lista de lo que hace ayuda. Sin embargo, puede obtener el mismo efecto escribiendo re.match(re.escape("bla"), "bla"); re.escape es una función que inserta barras diagonales inversas antes que todos los caracteres especiales.

Por cierto, se debe generalmente utilizar cadenas "en bruto", r"..." en lugar de sólo "...", ya que de lo contrario las barras invertidas conseguirán procesada dos veces (una vez cuando se analiza la cadena, y luego otra vez por el motor de expresiones regulares), que significa tiene que escribir cosas como \\b en lugar de \b. El uso de r"..." previene ese primer pase de procesamiento, por lo que puede escribir \b.

+1

Gracias. Me gustaría obtener una excepción al insertar una expresión regular no compatible. Oh espera, este es Python ... – wafwaf

+0

De nada. Y si . . . Veo por qué la gente ama tanto a Python, pero. . . – ruakh

+0

@ruakh No es para los regex, créame. :) – tchrist

1

Desafortunadamente, Python no admite las secuencias de escape \Q y \E. Solo tienes que escapar de todo tú mismo.

+0

-1: hay cadenas sin formato y re.escape –

Cuestiones relacionadas