Dada una cadena, quiero reemplazar todos los enlaces dentro de ella con la descripción del enlace. Por ejemplo, dadaen emacs-lisp, ¿cómo uso correctamente replace-regexp-in-string?
this is a [[http://link][description]]
me gustaría volver
this is a description
Solía re-constructor para construir esta expresión regular para un enlace:
\\[\\[[^\\[]+\\]\\[[^\\[]+\\]\\]
Ésta es mi función:
(defun flatten-string-with-links (string)
(replace-regexp-in-string "\\[\\[[^\\[]+\\]\\[[^\\[]+\\]\\]"
(lambda(s) (nth 2 (split-string s "[\]\[]+"))) string))
En lugar de reemplazar th e toda la secuencia de expresiones regulares, solo reemplaza el final "]]". Esto es lo que produce:
this is a [[http://link][descriptiondescription
No entiendo lo que está pasando mal. Cualquier ayuda sería muy apreciada.
ACTUALIZACIÓN: He mejorado la expresión regular para el enlace. Es irrelevante para la pregunta, pero si alguien va a copiarlo, también puede obtener la mejor versión.