Sul sito di scambio di code golf code oggi, ho trovato questa risposta in Clojure alla domanda "Ottieni tutti i link su una pagina web".
(->> (slurp "http://www.stroustrup.com")
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+"))
Senza la fantasia macro, è proprio questo:
(re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp "http://www.stroustrup.com"))
Questo restituisce l'elenco:
("http://www.morganstanley.com/" "http://www.cs.columbia.edu/" "http://www.cse.tamu.edu" ...)
Posso fare qualcosa di simile in Emacs Lisp?
Forse una funzione del genere (re-seq regexp (buffer-string))
ritorna '(firstmatch secondmatch thirdmatch ...)
?
occur
. Dovrò guardare attraverso la sua fonte.
s.el
, ma forse c'è di più là fuori. Qui: github.com/magnars/s.el#s-match-strings-all-regex-string che ne dici di questo?
M-x occur
fa, ma cercherei più funzioni di basso livello per farlo.