Sur le site de Code Golf Stack Exchange aujourd'hui, j'ai trouvé cette réponse dans Clojure à la question "Obtenez tous les liens sur une page Web".
(->> (slurp "http://www.stroustrup.com")
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+"))
Sans la macro fantaisie, c'est juste ceci:
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp "http://www.stroustrup.com"))
Cela renvoie la liste:
("http://www.morganstanley.com/" "http://www.cs.columbia.edu/" "http://www.cse.tamu.edu" ...)
Puis-je faire quelque chose de similaire dans Emacs Lisp?
Peut-être qu'une fonction comme (re-seq regexp (buffer-string))
celle-là revient '(firstmatch secondmatch thirdmatch ...)
?
occur
. Je vais devoir regarder à travers sa source.
s.el
, mais peut-être y a-t-il plus. Ici: github.com/magnars/s.el#s-match-strings-all-regex-string que diriez-vous?
M-x occur
fait, mais je regarderais à l'intérieur pour plus de fonctions de bas niveau pour le faire.