Ale*_*eph 1 regex string clojure
我正在尝试使用clojure.string/replace
反斜杠(如ex*mple
-> ex\*mple
)来转义星号和反引号等某些字符,但我无法理解该函数自己的转义规则:
如果我尝试(cs/replace "ex*mple" #"[\*`]" "\\$0")
,它会按$0
字面意思处理并返回ex$0mple
。
如果我尝试(cs/replace "ex*mple" #"[\*`]" "\\\\$0")
它会添加两个斜杠:ex\\*mple
.
正确的做法是什么?
你的第二种方法(cs/replace "ex*mple" #"[\*`]" "\\\\$0")
是正确的。您在结果中看到两个反斜杠的原因是因为这就是 Clojure 在字符串中显示单个反斜杠的方式。如果您打印"ex\\*mple"
,您会看到ex\*mple
。
Clojure 使用反斜杠作为字符串中的转义字符,因此必须对反斜杠本身进行转义。ex\*mple
不是 Clojure 中的有效字符串,因为\*
它是不受支持的转义字符。
归档时间: |
|
查看次数: |
489 次 |
最近记录: |