Я просматривал документацию для String
сегодня, и я видел метод :sub
, о котором я никогда не замечал раньше. Я использовал :gsub
, и кажется, что они по сути одинаковы. Может ли кто-нибудь объяснить мне разницу? Спасибо!
В чем разница между методами gsub и sub для Ruby Strings
Ответ 1
g
обозначает глобальное значение, как и в глобальном (все):
В irb:
>> "hello".sub('l', '*')
=> "he*lo"
>> "hello".gsub('l', '*')
=> "he**o"
Ответ 2
Разница в том, что sub
заменяет только первое вхождение указанного шаблона, тогда как gsub
делает это для всех вхождений (т.е. заменяет глобально).
Ответ 3
value = "abc abc"
puts value # abc abc
# Sub replaces just the first instance.
value = value.sub("abc", "---")
puts value # --- abc
# Gsub replaces all instances.
value = value.gsub("abc", "---")
puts value # --- ---