How do I limit the number of replacements when using gsub?
Pregunta
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.
Solución
gsub replaces all occurences.
You can try String#sub
Otros consejos
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"
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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow