How do you limit the number of replacements made by String#gsub in Ruby?
In PHP this can be easy done with preg_replace which takes a parameter for limiting replacements, but I can't figure out how to do this in Ruby.
You can create a counter and decrement that within a gsub loop.
str = 'aaaaaaaaaa'
count = 5
p str.gsub(/a/){if count.zero? then $& else count -= 1; 'x' end}
# => "xxxxxaaaaa"
gsub replaces all occurences.
You can try String#sub
http://ruby-doc.org/core/classes/String.html#M001185
str = 'aaaaaaaaaa'
# The following is so that the variable new_string exists in this scope,
# not just within the block
new_string = str
5.times do
new_string = new_string.sub('a', 'x')
end
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