我有这段代码将所有商店的名称从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 lib支持区分大小写?
答案 0 :(得分:3)
但是在Clojure中,它不能使用正则表达式/ abc / i
是的,您可以:
(let [str1 "ABC store of JOHN"]
(str/replace str1 #"(?i)abc" "XYZ"))
答案 1 :(得分:0)
Clojure使用的继承自Java的正则表达式语言略有不同,因此您需要按以下方式编写正则表达式:
(str/replace (str/lower-case str1) #"(?:abc)" "XYZ")
输出"XYZ store of john"
您可以在JDK documentation for Pattern class中找到Java的正则表达式语言的说明。