Di situs Code Golf Stack Exchange hari ini, saya menemukan jawaban ini di Clojure untuk pertanyaan "Dapatkan semua tautan di laman web".
(->> (slurp "http://www.stroustrup.com")
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+"))
Tanpa makro mewah, hanya ini:
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp "http://www.stroustrup.com"))
Ini mengembalikan daftar:
("http://www.morganstanley.com/" "http://www.cs.columbia.edu/" "http://www.cse.tamu.edu" ...)
Bisakah saya melakukan hal serupa di Emacs Lisp?
Mungkin fungsi seperti (re-seq regexp (buffer-string))
itu kembali '(firstmatch secondmatch thirdmatch ...)
?
occur
. Saya harus memeriksa sumbernya.
s.el
, tetapi mungkin ada lebih banyak di luar sana. Di sini: github.com/magnars/s.el#s-match-strings-all-regex-string bagaimana dengan ini?
M-x occur
dilakukan, tetapi saya akan mencari ke dalam untuk fungsi yang lebih rendah untuk melakukannya.