regex - Scala正则表达式替换为匿名函数

标签 regex scala

在Ruby中,我可以通过以下方式替换字符串中的字符:

a = "one1two2three"
a.gsub(/\d+/) {|e| e.to_i + 1}
=> "one2two3three"

从第二行评估块的结果将替换模式中匹配的块。我们可以在Scala中做一些等效的事情吗?用函数/匿名函数的结果替换正则表达式中的内容?

最佳答案

是的,Regex#replaceAllIn的重载版本带有函数Match => String。您的代码的等效Scala版本将是:

"""\d+""".r.replaceAllIn("one1two2three", m => (m.group(0).toInt + 1).toString)

关于regex - Scala正则表达式替换为匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5675820/

相关文章:

python 使用 re.sub 捕获组

c++ - 从字符串 C++ 中删除元音

java - 正则表达式匹配 2 还是不匹配?

scala - 与下划线一起使用时,部分函数应用程序过早地运行代码块

regex - 如何在 bash 中检查版本格式的输入字符串 (n1.n2.n3)

javascript - 如何同时验证中文(unicode)和英文名称?

scala - 修改 Scala 中 (String, String) 变量的位置

mongodb - Scala MongoDB,重写编解码器以写入/读取数组[字节]

java - 将时间转换为UTC时间是相反的方式

postgresql - 如何处理异常: "No suitable driver" while running spark-submit