Bugün Code Golf Stack Exchange sitesinde, bu cevabı Clojure'da "Bir web sayfasındaki tüm linkleri al" sorusuna buldum .
(->> (slurp "http://www.stroustrup.com")
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+"))
Süslü makro olmadan, sadece bu:
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp "http://www.stroustrup.com"))
Bu listeyi döndürür:
("http://www.morganstanley.com/" "http://www.cs.columbia.edu/" "http://www.cse.tamu.edu" ...)
Emacs Lisp'de benzer bir şey yapabilir miyim?
Belki böyle bir işlev (re-seq regexp (buffer-string))
geri döner '(firstmatch secondmatch thirdmatch ...)
?
occur
. Kaynağına bakmam gerekecek.
s.el
, ama belki daha fazlası var. İşte: github.com/magnars/s.el#s-match-strings-all-regex-string buna ne dersiniz?
M-x occur
bu, ama bunu yapmak için daha düşük seviyeli fonksiyonlar için içeriye bakardım.