在此字符串中:
val s = "pow(10,3) + pow(10,3) + pow(10,3)"
我需要更换
pow(10,3)
和
1000
所以最终结果是
1000 + 1000 + 1000
我尝试过
s.replaceAll("pow(10,3)", "1000")
但是,这不起作用,因为第一个参数是正则表达式,并且括号表示一个组。上面的声明实际上并不能替代任何内容。有任何想法吗?
要替换文字字符串,请不要使用replaceAll
,请使用replace
。
观看此Scala演示:
val s = "pow(10,3) + pow(10,3) + pow(10,3)";
print(s.replace("pow(10,3)", "1000"));
// => 1000 + 1000 + 1000
如果需要使用replaceAll
,则必须使用双反斜杠对文字括号进行转义:
s.replaceAll("pow\\(10,3\\)", "1000")
或者,使用三引号引起来的字符串文字,并使用单个反斜杠来转义特殊的正则表达式元字符:
s.replaceAll("""pow\(10,3\)""", "1000")
双方replaceAll
并replace
会取代多次出现。
在旁边replace
,您可以使用replaceAllLiterally(literal: String, replacement: String): String
另请参见是否有理由在Java的String.replace上使用Scala的StringLike.replaceAllLiterally?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句