2012-11-13 58 views
1

我想逃脫了\斯卡拉:使用正則表達式來逃避某些字符

我想出了以下解決方案之前他們某些字符:

scala> val l = List(".", "+", " ") 
scala> val x = "hola.vamos a+escapar" 
scala> l.foldRight(x){ (char, text) => text.replaceAll("""\""" + char, """\\""" + char) } 
res1: java.lang.String = hola\.vamos\ a\+escapar 

但我敢肯定有必須使用正則表達式來實現它的方式,但我不知道如何引用匹配的文本...

回答

4
"hola.vamos a+escapar".replaceAll("([.+ ])", "\\\\$1") 

"hola.vamos a+escapar".replaceAll("([.+ ])", """\\$1""") 

取決於您是否更喜歡大量引號或反斜槓。

+0

太棒了,我不知道1美元的東西,我非常確定它非常容易,謝謝! – opensas

+0

我總是比較喜歡大量的引號(至少它們只是在reg exp的開始和結尾處) – opensas