Подтвердить что ты не робот

Ruby - заменить первое вхождение подстроки на другую строку

a = "foobarfoobarhmm"

Я хочу, чтобы результат был как "fooBARfoobarhmm"

то есть только первое появление "bar" должно быть заменено на "BAR".

4b9b3361

Ответ 1

Используйте #sub:

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

Ответ 2

String#sub - это то, что вам нужно, как сказал Йосси. Но вместо этого я бы использовал Regexp, так как это быстрее:

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

Ответ 3

чтобы заменить первое вхождение, просто выполните следующее:

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

вы даже можете использовать регулярные выражения:

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