ในเว็บไซต์ 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
ทำ แต่ฉันจะมองหาฟังก์ชั่นระดับต่ำมากขึ้นในการทำเช่นนั้น