Cho một chuỗi, tôi muốn thay thế tất cả các liên kết bên trong nó bằng mô tả của liên kết. Ví dụ, chotrong emacs-lisp, làm cách nào để sử dụng đúng chuỗi regexp-in-string?
this is a [[http://link][description]]
Tôi muốn trở
this is a description
tôi đã sử dụng tái xây dựng để xây dựng regexp này cho một liên kết:
\\[\\[[^\\[]+\\]\\[[^\\[]+\\]\\]
Đây là chức năng của tôi:
(defun flatten-string-with-links (string)
(replace-regexp-in-string "\\[\\[[^\\[]+\\]\\[[^\\[]+\\]\\]"
(lambda(s) (nth 2 (split-string s "[\]\[]+"))) string))
Thay vì thay thế thứ e toàn bộ chuỗi regexp, nó chỉ thay thế dấu "]]". Đây là những gì nó tạo ra:
this is a [[http://link][descriptiondescription
Tôi không hiểu chuyện gì đang xảy ra. Bất kì sự trợ giúp nào đều được đánh giá cao.
CẬP NHẬT: Tôi đã cải thiện regex cho liên kết. Nó không liên quan đến câu hỏi nhưng nếu ai đó sẽ sao chép nó, họ cũng có thể nhận được phiên bản tốt hơn.