替换"&"用"&"用clojure.string / replace

时间:2017-11-29 20:21:26

标签: regex clojure

非常不言自明。我有一个包含&符号的字符串,我需要用字符引用替换它。

我已尝试过各种正则表达式模式来尝试替换它,但它们都不起作用(这些只是少数):

(s/replace string #"\Q&\E" "&")
(s/replace string #"\\Q&\\E" "&")
(s/replace string #"\\&" "&")
(s/replace string #"&" "&")

1 个答案:

答案 0 :(得分:3)

最简单的方法是使用字符串/字符串形式的替换(而不是正则表达式):

(ns tst.demo.core
  (:require
    [clojure.string :as str]
    [ring.util.codec :as codec] ))

(def data "hello & goodbye")

(str/replace data "&" "&amp") => "hello &amp 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"