首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用scala中的文字\d替换所有的数字?

如何用scala中的文字\d替换所有的数字?
EN

Stack Overflow用户
提问于 2011-02-28 13:18:40
回答 2查看 1.8K关注 0票数 3

我想编写一个函数,用文字\d替换字符串中的所有数字。我的代码是:

代码语言:javascript
复制
val r = """\d""".r
val s = r.replaceAllIn("123abc", """\d""")
println(s)

我希望结果是\d\d\dabc,但得到:

代码语言:javascript
复制
dddabc

然后,我将代码(第2行)更改为:

代码语言:javascript
复制
val s = r.replaceAllIn("123abc", """\\d""")

结果现在是正确的:\d\d\dabc

但是我不明白为什么replaceAllIn方法转换字符串,而不是直接使用它?

在我以前的代码中有一个toList,这就是我现在想要的。我刚刚更新了问题。感谢每个人。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-28 13:27:03

只需删除toList即可。

代码语言:javascript
复制
val r = """\d""".r
val list = r.replaceAllIn("123abc", """\\d""")
println(list)

String是(隐式的,通过WrappedString,可转换为) Seq[Char]。如果调用toList,就会有一个List[Char]

票数 1
EN

Stack Overflow用户

发布于 2011-03-01 17:40:38

Scala的Regex在底层使用java.util.regex (至少在JVM上是这样)。现在,如果您在Java上查找replaceAll,您将看到以下内容:

注意,替换字符串中的反斜杠(\)和美元符号($)可能导致结果不同于将其视为文字替换字符串的结果。如上文所述,美元符号可被视为对捕获子序列的引用,反斜杠用于转义替换字符串中的文字字符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5142483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档