Do Not Overthink Ruby

Originally published at scottw.com on Mar 21, 2019 ・1 min read

I was reading through the Ruby regex docs trying to figure out how to iterate over a string and replace all the matches of a particular pattern.

The tricky part is the matches are not one to one (not just a find and replace). I tried a bunch of different things and then started wishing gsub took a block….turns out it already does this.

Example:

"1234".gsub(/\d/) {|i| i.to_i * 2} # 2468

Even better, it handles all substitution

"Square this number: 5".gsub(/\d/) {|i| i.to_i * i_to_i}
# Square this number: 25

DISCUSS
Classic DEV Post from Dec 12 '18

Resume Review

Let's help each other out - Junior or Senior there's something for you here!

Boostrapped Founder

Don't miss out on the next important post

Sign up (it's free!)