Trên trang web Code Golf Stack Exchange hôm nay, tôi đã tìm thấy câu trả lời này trong Clojure cho câu hỏi "Nhận tất cả các liên kết trên một trang web".
(->> (slurp "http://www.stroustrup.com")
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+"))
Không có macro ưa thích, nó chỉ như thế này:
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp "http://www.stroustrup.com"))
Điều này trả về danh sách:
("http://www.morganstanley.com/" "http://www.cs.columbia.edu/" "http://www.cse.tamu.edu" ...)
Tôi có thể làm điều gì đó tương tự trong Emacs Lisp không?
Có lẽ một chức năng như (re-seq regexp (buffer-string))
vậy trả về '(firstmatch secondmatch thirdmatch ...)
?
occur
. Tôi sẽ phải xem qua nguồn của nó.
s.el
, nhưng có lẽ có nhiều hơn ngoài đó. Ở đây: github.com/magnars/s.el#s-match-strings-all-regex-opes làm thế nào về điều này?
M-x occur
hiện có, nhưng tôi sẽ tìm bên trong các chức năng cấp thấp hơn để làm điều đó.