Ruby – remplace la première occurrence d’une sous-chaîne par une autre chaîne

a = "foobarfoobarhmm"

Je veux la sortie comme “fooBARfoobarhmm”

c’est-à-dire que seule la première occurrence de “bar” devrait être remplacée par “BAR”.

Utilisez #sub :

 a.sub('bar', "BAR") 

Ssortingng#sub est ce dont vous avez besoin, comme l’a déjà dit Yossi. Mais j’utiliserais plutôt une Regexp, car c’est plus rapide:

 a = 'foobarfoobarhmm' output = a.sub(/foo/, 'BAR') 

pour remplacer la première occurrence, procédez comme suit:

 str = "Hello World" str['Hello'] = 'Goodbye' # the result is 'Goodbye World' 

vous pouvez même utiliser des expressions régulières:

 str = "I have 20 dollars" str[/\d+/] = 500.to_s # will give 'I have 500 dollars'