我想编写一个函数,用文字\d替换字符串中的所有数字。我的代码是:
val r = """\d""".r
val s = r.replaceAllIn("123abc", """\d""")
println(s)我希望结果是\d\d\dabc,但得到:
dddabc然后,我将代码(第2行)更改为:
val s = r.replaceAllIn("123abc", """\\d""")结果现在是正确的:\d\d\dabc
但是我不明白为什么replaceAllIn方法转换字符串,而不是直接使用它?
在我以前的代码中有一个toList,这就是我现在想要的。我刚刚更新了问题。感谢每个人。
发布于 2011-03-01 17:40:38
Scala的Regex在底层使用java.util.regex (至少在JVM上是这样)。现在,如果您在Java上查找replaceAll,您将看到以下内容:
注意,替换字符串中的反斜杠(
\)和美元符号($)可能导致结果不同于将其视为文字替换字符串的结果。如上文所述,美元符号可被视为对捕获子序列的引用,反斜杠用于转义替换字符串中的文字字符。
https://stackoverflow.com/questions/5142483
复制相似问题