Сегодня на сайте Code 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
, что делает, но я бы заглянул внутрь для более низкоуровневых функций, чтобы сделать это.