Quiero usar la entrada de un usuario como patrón de expresiones regulares para una búsqueda en algún texto. Funciona, pero ¿cómo puedo manejar casos en los que el usuario pone caracteres que tienen significado en expresiones regulares? Por ejemplo, el usuario quiere buscar Word (s)
: el motor de expresiones regulares tomará el (s)
como grupo. Quiero que lo trate como una cuerda "(s)"
. Puedo ejecutar replace
la entrada del usuario y reemplazar el (
con \(
y el )
con, \)
pero el problema es que tendré que reemplazar cada símbolo de expresión regular posible. ¿Conoces alguna forma mejor?
repl
argumento parare.sub
es una cadena, no una expresión regular; aplicarlore.escape
no tiene ningún sentido en primer lugar.repl
argumento no es una cadena simple, se analiza. Por ejemplo,re.sub(r'(.)', r'\1', 'X')
volveráX
, no\1
.repl
argumento: stackoverflow.com/q/49943270/247696Por favor, inténtalo:
\ Q y \ E como anclas
Ponga una condición O para que coincida con una palabra completa o expresión regular.
Enlace de referencia: cómo hacer coincidir una palabra completa que incluya caracteres especiales en expresiones regulares
fuente