使用gsub时如何限制替换次数?

| 如何限制Ruby中String#gsub进行替换的次数? 在PHP中,使用preg_replace可以很容易地做到这一点,它使用一个用于限制替换的参数,但是我不知道如何在Ruby中做到这一点。     
已邀请:
gsub替换所有出现的事件。 您可以尝试String#sub http://ruby-doc.org/core/classes/String.html#M001185     
您可以在gsub循环中创建一个计数器并减少它。
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
    

要回复问题请先登录注册