Clojure 正则表达式规范

Spec for Clojure regex literals

我的地图中的一个键应该包含一个 Clojure(Script) 正则表达式,一个 regex literal。如何编写既匹配又可以生成此类的规范?

注意本题不是匹配正则表达式表示的字符串,而是匹配正则表达式本身

JVM 上的 Clojure 正则表达式文字是 java.util.regex.Pattern 的实例,下面可以看到匹配和生成正则表达式的规范。

(spec/def ::stregex
  (spec/with-gen
    #(instance? java.util.regex.Pattern %)
    #(gen/fmap re-pattern (spec/gen string?))))