如何在Clojure中使用正则表达式过滤目录列表

jwh*_*ark 3 regex clojure

给定正则表达式和目录路径,如何获得其路径与正则表达式匹配的seq文件?

即,我想要

(require '[clojure.java.io :as io])

(regex-file-seq #"\.ssh/.*\.pub$" (io/file "/home")) =>
(#<File /home/x/.ssh/iaf_dsa.pub> #<File ....>)
Run Code Online (Sandbox Code Playgroud)

我花了几分钟把这些碎片放在一起,所以我想我会发布它.

jwh*_*ark 6

(defn regex-file-seq
  "Lazily filter a directory based on a regex."
  [re dir]
  (filter #(re-find re (.getPath %)) (file-seq dir)))
Run Code Online (Sandbox Code Playgroud)