什么是验证字符串只有字母数字和连字符的惯用 clojure?

Sir*_*ert 6 regex string validation clojure

我需要确保某个输入只包含小写字母和连字符。实现这一目标的最佳惯用 clojure 是什么?

在 JavaScript 中,我会做这样的事情:

if (str.match(/^[a-z\-]+$/)) { ... }
Run Code Online (Sandbox Code Playgroud)

clojure 中更惯用的方式是什么,或者如果是这样,正则表达式匹配的语法是什么?

run*_*xec 5

user> (re-matches #"^[a-z\-]+$" "abc-def")
"abc-def"
user> (re-matches #"^[a-z\-]+$" "abc-def!!!!")
nil
user> (if (re-find #"^[a-z\-]+$" "abc-def")
        :found)
:found
user> (re-find #"^[a-zA-Z]+" "abc.!@#@#@123")
"abc"
user> (re-seq #"^[a-zA-Z]+" "abc.!@#@#@123")
("abc")
user> (re-find #"\w+" "0123!#@#@#ABCD")
"0123"
user> (re-seq #"\w+" "0123!#@#@#ABCD")
("0123" "ABCD")
Run Code Online (Sandbox Code Playgroud)