9
在Ruby中,我可以通過以下方式替換字符串中的字符:Scala的正則表達式與匿名函數替換
a = "one1two2three"
a.gsub(/\d+/) {|e| e.to_i + 1}
=> "one2two3three"
評估從第二行塊的結果,將取代什麼模式被匹配。我們可以在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