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) 
+0

非常棒!谢谢! – Geo 2011-04-15 11:27:25