Expresión regular para escapar de las expresiones regulares.

Ayer, necesitaba agregar una ruta de archivo a una expresión regular creando un patrón como este:

"some_pattern/%s/more_pattern" % some_path 

Al principio, la expresión regular no coincidía, porque some_path contenía varios símbolos específicos de expresiones regulares como ? o . . Como solución rápida, los reemplacé con [?]{1} y . con \. .

Sin embargo, me pregunté si no hay una forma más confiable o mejor de limpiar una cadena de símbolos específicos de expresiones regulares.

  • ¿Es esta funcionalidad compatible en la biblioteca estándar de Python?
  • Si no, ¿conoce una expresión regular para identificar todos los símbolos de expresiones regulares y limpiarlos a través de un sustituto?

Solo aplica re.escape y estarás bien.

re.escape(string)

Devuelva la cadena con todos los caracteres no alfanuméricos con barra diagonal inversa; esto es útil si desea hacer coincidir una cadena literal arbitraria que puede tener metacaracteres de expresiones regulares.