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

Ion*_*Br. 6 ruby gsub

你如何限制Ruby中String#gsub所做的替换次数?

在PHP中,这可以通过preg_replace轻松完成,它带有一个限制替换的参数,但我无法弄清楚如何在Ruby中执行此操作.

saw*_*awa 5

您可以在 gsub 循环中创建一个计数器并递减它。

str = 'aaaaaaaaaa'
count = 5
p str.gsub(/a/){if count.zero? then $& else count -= 1; 'x' end}
# => "xxxxxaaaaa"
Run Code Online (Sandbox Code Playgroud)


man*_*lds 3

gsub 替换所有出现的情况。

你可以尝试 String#sub

http://ruby-doc.org/core/classes/String.html#M001185