非常不言自明。我有一个包含&符号的字符串,我需要用字符引用替换它。
我已尝试过各种正则表达式模式来尝试替换它,但它们都不起作用(这些只是少数):
(s/replace string #"\Q&\E" "&")
(s/replace string #"\\Q&\\E" "&")
(s/replace string #"\\&" "&")
(s/replace string #"&" "&")
答案 0 :(得分:3)
最简单的方法是使用字符串/字符串形式的替换(而不是正则表达式):
(ns tst.demo.core
(:require
[clojure.string :as str]
[ring.util.codec :as codec] ))
(def data "hello & goodbye")
(str/replace data "&" "&") => "hello & goodbye"
您可能也对Ring Codec [ring/ring-codec "1.1.0"]
(codec/url-encode data) => "hello%20%26%20goodbye"
(codec/percent-encode data) => "%68%65%6C%6C%6F%20%26%20%67%6F%6F%64%62%79%65"
(codec/form-encode data) => "hello+%26+goodbye"