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

发布于 2024-11-01 08:19:36 字数 211 浏览 1 评论 0原文

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

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

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

In Ruby I can replace characters in a string in the following way:

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

The result of evaluating the block from the second line, will replace what was matched in the pattern. Can we do something equivalent in Scala? Replace something in a regex with the results of a function/anonymous function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

还不是爱你 2024-11-08 08:19:36

是的,Regex#replaceAllIn 有一个重载版本,它采用函数 Match =>;字符串。代码的等效 Scala 版本将是:

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

Yes, Regex#replaceAllIn has an overloaded version that takes a function Match => String. The equivalent Scala version of your code would be:

"""\d+""".r.replaceAllIn("one1two2three", m => (m.group(0).toInt + 1).toString)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文