clojure.string/replace
为什么\"[^\"]+\"
与re-seq
模式不匹配?
(re-seq #"\"[^\"]+\"" "ab,\"helo,bro\",yo")
=> ("\"helo,bro\"")
(clojure.string/replace "ab,\"helo,bro\",yo" #"\"[^\"]+\”" "")
=> "ab,\"helo,bro\",yo"
我希望replace
删除匹配的模式。我在这里错过了什么?
感谢您的见解。
答案 0 :(得分:2)
您的正则表达式(可能是无意中)有所不同:在replace
选项中,您使用的是\”
而不是\"
。
如果您使用完全相同的正则表达式,它将按预期工作:
(def r #"\"[^\"]+\"")
(re-seq r "ab,\"helo,bro\",yo")
=> ("\"helo,bro\"")
(clojure.string/replace "ab,\"helo,bro\",yo" r "")
=> "ab,,yo"