J'ai parcouru la documentation de String
aujourd'hui et j'ai vu la méthode :sub
, que je n'avais jamais remarquée auparavant. J'ai utilisé :gsub
et il semble qu'ils soient essentiellement les mêmes. Quelqu'un peut-il m'expliquer la différence? Merci!
g
signifie global, comme dans replace globally (all):
En irb:
>> "hello".sub('l', '*')
=> "he*lo"
>> "hello".gsub('l', '*')
=> "he**o"
La différence est que sub
ne remplace que la première occurrence du modèle spécifié, alors que gsub
le fait pour toutes les occurrences (c'est-à-dire qu'il remplace globalement).
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 # --- ---