Buscar y reemplazar usando expresiones regulares es claramente una herramienta poderosa para el usuario de Emacs que puede realizar estas acciones de manera rutinaria. Sin embargo, como principiante de Emacs (y / o programación), las expresiones regulares necesitan ser aprendidas y practicadas.
¿Puedo aprender y entrenar expresiones regulares de manera interactiva en Emacs, de manera similar al tutorial incorporado de Emacs? Si no, ¿cuáles son otras sugerencias para utilizar Emacs para practicar el uso de expresiones regulares para buscar y reemplazar?
regular-expressions
learning
Felix Z. Hoffmann
fuente
fuente
Respuestas:
Además
regexp-builder
, también puede considerar visual-regexp para proporcionarle comentarios visuales sobre el reemplazo en progreso:fuente
anzu
, que hace lo mismo y más.Puedes probar
M-x regexp-builder RET
cuál es un emparejador interactivo de expresiones regulares, eso no está malfuente
C-g
no salga como esperaba.C-c C-q
es la combinación de teclas predeterminada para salir del generador de expresiones regulares cuando haya terminado de practicar.Utilizo el
regexp-builder
que le permite probar expresiones regulares de forma interactiva y obtener comentarios. Y, por supuesto, una vez que comencé a usar eso, inmediatamente me pregunté "¿Cómo puedo alimentar esta expresión regularquery-replace-regexp
?"La respuesta que elegí es la siguiente función definida en la página EmacsWiki ReBuilder .
Entonces mi flujo de trabajo es:
M-x re-builder
M-x reb-query-replace
fuente
Puede ser de gran ayuda cuando se aprende a usar expresiones regulares para ver qué coincide con qué partes de una expresión regular, en particular, los grupos de expresiones regulares. Y para hacerlo de forma interactiva e incremental.
En la línea de la respuesta de @immerr, la búsqueda de Icicles ha tenido un resaltado similar durante mucho tiempo.
fuente
También puede usar helm-regexp que muestra grupos de expresiones regulares por separado.
fuente
No dentro de emacs, pero http://rubular.com/ es básicamente
regexp-builder
con una hoja de trucos. Puede configurar un ejemplo y hacer que escupe un enlace a ese ejemplo. Lo uso cuando hablo de expresiones regulares con un equipo.fuente
Como alternativa a Dave F,
regexp-builder
también puede crear texto arbitrario para practicar la coincidencia de patrones.La característica más útil de este comando es que resaltará las coincidencias en el búfer a medida que se crea el patrón para ayudarlo a garantizar que el patrón coincida correctamente.
Usar
(query-replace-regexp)
( C-M-%) y crear una expresión regular para realizar el reemplazo que desea le ayudará a practicar.fuente
regexp-builder
aún no ofrece? El problemaquery-replace-regexp
es que necesita escribir una expresión regular completa y luego comprometerse a averiguar qué coincide. Si no le gusta el resultado, debe comenzar de nuevo.regexp-builder
muestra coincidencias sobre la marcha, lo que facilita ajustar tu expresión regular hasta que funcione si no sabes lo que estás haciendo.query-replace-regexp
, te acostumbrarás a usarlo específicamente en Emacs