@Stergy

Как заменить несколько слов в строке на ruby?

Есть некая строка:
sentence = "My name is Robert"
Мне нужно сделать замену слов My на Yourи Robert на Joe
Делал так:
sentence.gsub! 'Robert', 'Joe'
В таком случае происходит нужная замена слова, но как сделать одновременную замену 2 слов?
Пробовал как-то так, но не сработало
sentence.gsub! 'Robert', 'Joe'.gsub "My", "Your"
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
oh_shi
@oh_shi
Скобки просто расставьте, чтоб не было путаницы.
sentence.gsub('Robert', 'Joe').gsub('My', 'Your')
=> "Your name is Joe"

Но если слово для замены в строке встречается только 1 раз, то лучше использовать sub.
А если очень хочется за 1 проход по строке
sentence.gsub(/Robert|My/, 'Robert' => 'Joe', 'My' => 'Your')
=> "Your name is Joe"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы