Clojure中如何忽略大小写敏感性

3

我有这段代码来替换所有商店名为ABC(或Abc ...)为XYZ

(def str1 "ABC store of JOHN")
(str/replace (str/lower-case str1) #"abc" "XYZ")

// output: XYZ store of john
// expected: XYZ store of JOHN

我不想像那样将所有字符串都转换为小写。

但是在Clojure中,不能像其他语言一样使用带有i标志的正则表达式/abc/i来忽略大小写敏感性。

哪种Clojure正则表达式或Clojure库支持区分大小写?

2个回答

6

但在Clojure中,不能使用正则表达式/abc/i

是的,你可以:

(let [str1 "ABC store of JOHN"]
    (str/replace str1 #"(?i)abc" "XYZ"))

0

Clojure使用从Java继承而来的略有不同的正则表达式语言,因此您需要按照以下方式编写正则表达式:

(str/replace (str/lower-case str1) #"(?:abc)" "XYZ")

输出 "约翰的XYZ商店"

您可以在Pattern类的JDK文档中找到Java正则表达式语言的描述。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接