Cadena literal de coincidencia de expresiones regulares

9

Quiero escribir una función (o usar una existente) que tomará cualquier cadena y producirá una expresión regular correctamente escapada que coincida solo con esa cadena. ¿Cuál es la forma más rápida y sencilla de hacer esto?

PythonNut
fuente

Respuestas:

9

Usted está buscando regexp-quote:

Esta función devuelve una expresión regular cuya única coincidencia exacta es una cadena. El uso de esta expresión regular en mirar solo tendrá éxito si los siguientes caracteres en el búfer son cadenas; usarlo en una función de búsqueda tendrá éxito si el texto que se busca contiene una cadena.

Esto le permite solicitar una coincidencia de cadena exacta o buscar cuando se llama a una función que quiere una expresión regular.

Dan
fuente
Lo juro, busqué en los documentos y en Google, simplemente no pensé en la cita como una palabra clave. Gracias.
PythonNut
1
regexp-quotetiene el buen uso alternativo de escapar caracteres especiales en una cadena correctamente para usar cuando una función espera una expresión regular en "forma de Emacs", por ejemplo, si no puede recordar cuántas barras invertidas usar para escapar de una barra invertida literal, simplemente ejecútelo regexp-quoteen el scratchbúfer o ielm.
dodgethesteamroller