今日のCode Golf Stack Exchangeサイトで、「Webページ上のすべてのリンクを取得する」という質問に対する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
が、それを行うためのより低レベルの関数を探します。