2012-11-13 26 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