Сьогодні на сайті Exchange Golf Stack Exchange я знайшов цю відповідь у Clojure на запитання "Отримати всі посилання на веб-сторінці".
(->> (slurp "http://www.stroustrup.com")
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+"))
Без фантазії макрос, це просто так:
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp "http://www.stroustrup.com"))
Це повертає список:
("http://www.morganstanley.com/" "http://www.cs.columbia.edu/" "http://www.cse.tamu.edu" ...)
Чи можу я зробити щось подібне в Emacs Lisp?
Можливо, така функція (re-seq regexp (buffer-string))
повертається '(firstmatch secondmatch thirdmatch ...)
?
occur
. Мені доведеться переглянути його джерело.
s.el
, але, можливо, там є більше. Тут: github.com/magnars/s.el#s-match-strings-all-regex-string як щодо цього?
M-x occur
робить, але я би заглянув всередину для більш низьких функцій для цього.