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?
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With