在 Clojure 函数中耦合多个正则表达式的最佳方法是什么?我相信这个功能会这样开始:
(defn foo [x]
(re-seq #"some means to combine multiple regex")
但我不清楚这是否可行,或者这种功能的效率。为了提供一个可能的正则表达式耦合的例子,可以考虑一个同时搜索域名和 IP 的函数。对于域名,我会使用正则表达式:
(re-seq #"\b([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}\b" x)
对于 IP:
(re-seq #"\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b")