Clojure stripMargin

Ral*_*lph 5 xml string scala clojure

Scala提供了一个名为stripMargin的方法,它将多行字符串的左侧部分删除到指定的分隔符(默认值为"|").这是一个例子:

"""|Foo
   |Bar""".stripMargin
Run Code Online (Sandbox Code Playgroud)

返回字符串

Foo
Bar
Run Code Online (Sandbox Code Playgroud)

在Clojure中有类似的功能吗?如果没有,你将如何实现它(功能最多)?

谢谢.

更新:我给出的例子不完整.stripMargin方法还在分隔符后保留空格:

"""|Foo
   |   Bar""".stripMargin
Run Code Online (Sandbox Code Playgroud)

返回字符串

Foo
   Bar
Run Code Online (Sandbox Code Playgroud)

Abh*_*kar 5

没有内置这样的函数,但你很容易写出来:

user=> (use '[clojure.contrib.string :only (join, split-lines, ltrim)]) //'
nil
user=> (->> "|Foo\n  |Bar" split-lines (map ltrim) 
  (map #(.replaceFirst % "\\|" "")) (join "\n"))
"Foo\nBar"
Run Code Online (Sandbox Code Playgroud)