获取Ruby中gsub替换的数量

获取Ruby中gsub替换的数量,ruby,Ruby,字符串,或nil。有没有办法让它返回替换的数量?我可以考虑使用gsub这样的块: count = 0 str.gsub(/pat/) { |a| count+=1; "replacement" } 例如: str = "lets replace all s with S" count = 0 str.gsub("s") { |a| count+=1; "S" } count #=> 2 我可以这样使用gsub块: count = 0 str.gsub(/pat/) { |a| coun

字符串,或
nil
。有没有办法让它返回替换的数量?

我可以考虑使用
gsub
这样的块:

count = 0
str.gsub(/pat/) { |a| count+=1; "replacement" }
例如:

str = "lets replace all s with S"
count = 0
str.gsub("s") { |a| count+=1; "S" }
count
#=> 2

我可以这样使用
gsub
块:

count = 0
str.gsub(/pat/) { |a| count+=1; "replacement" }
例如:

str = "lets replace all s with S"
count = 0
str.gsub("s") { |a| count+=1; "S" }
count
#=> 2
在Ruby中,不带第二个参数返回一个
枚举数
,您可以使用它:

str = 'your string'
new_str = str.gsub(/your/, 'my')
count = str.gsub(/your/).count
在Ruby中,不带第二个参数返回一个
枚举数
,您可以使用它:

str = 'your string'
new_str = str.gsub(/your/, 'my')
count = str.gsub(/your/).count

根据您提供的
gsub
文档链接,它返回的不仅仅是字符串或零。
gsub
返回一个新字符串,而
gsub
返回(替换的)接收方或
nil
根据您提供的
gsub
文档链接,它返回的不仅仅是字符串或nil。
gsub
返回新字符串,而
gsub
返回(被替换的)接收器或
nil
注意,这将执行
gsub
两次,说明这将执行
gsub
两次