Na stronie Code Golf Stack Exchange znalazłem dziś odpowiedź w Clojure na pytanie „Uzyskaj wszystkie linki na stronie internetowej”.
(->> (slurp "http://www.stroustrup.com")
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+"))
Bez fantazyjnego makra jest to tylko:
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp "http://www.stroustrup.com"))
To zwraca listę:
("http://www.morganstanley.com/" "http://www.cs.columbia.edu/" "http://www.cse.tamu.edu" ...)
Czy mogę zrobić coś podobnego w Emacs Lisp?
Być może funkcja taka (re-seq regexp (buffer-string))
zwraca '(firstmatch secondmatch thirdmatch ...)
?
occur
. Będę musiał przejrzeć jego źródło.
s.el
, ale może jest ich więcej. Tutaj: github.com/magnars/s.el#s-match-strings-all-regex-string a co z tym?
M-x occur
działa, ale zajrzałbym do wnętrza, aby znaleźć więcej funkcji niskiego poziomu.