Scala的正则表达式与匿名函数替换
问题描述:
在Ruby中,我可以通过以下方式替换字符串中的字符:Scala的正则表达式与匿名函数替换
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)
非常棒!谢谢! – Geo 2011-04-15 11:27:25