Podając ciąg, chcę zamienić wszystkie linki w nim za pomocą opisu linku. Na przykład, biorąc pod uwagęw emacs-sepp, w jaki sposób poprawnie użyć replace-regexp-in-string?
this is a [[http://link][description]]
Chciałbym wrócić
this is a description
użyłem re-builder skonstruować ten regexp dla linkiem:
\\[\\[[^\\[]+\\]\\[[^\\[]+\\]\\]
To jest moja funkcja:
(defun flatten-string-with-links (string)
(replace-regexp-in-string "\\[\\[[^\\[]+\\]\\[[^\\[]+\\]\\]"
(lambda(s) (nth 2 (split-string s "[\]\[]+"))) string))
Zamiast zastępować e cała sekwencja regexp, zastępuje tylko końcowe "]]". Oto, co produkuje:
this is a [[http://link][descriptiondescription
Nie rozumiem, co się dzieje. Każda pomoc byłaby bardzo cenna.
UPDATE: Poprawiłem wyrażenie regularne dla linku. Nie ma to znaczenia dla tego pytania, ale jeśli ktoś go skopiuje, mogą równie dobrze uzyskać lepszą wersję.