Хороший способ вставить строку перед регулярным выражением в Ruby

Как это сделать? Кажется, я мог бы использовать комбинацию нескольких различных методов, чтобы достичь того, чего я хочу, но, вероятно, есть более простой метод, который я упускаю из виду. Например, функция PHP preg_replace сделает это. Что-нибудь подобное в Ruby?

простой пример того, что я планирую сделать:

orig_string = "all dogs go to heaven"
string_to_insert = "nice "
regex = /dogs/

end_result = "all nice dogs go to heaven"

2 ответов


Это можно сделать с помощью "gsub" Ruby, согласно:

http://railsforphp.com/2008/01/17/regular-expressions-in-ruby/#preg_replace

orig_string = "all dogs go to heaven"
end_result = orig_string.gsub(/dogs/, 'nice \0')

result = subject.gsub(/(?=\bdogs\b)/, 'nice ')

проверки regex для каждой позиции в строке, является ли слово dogs можно сопоставить там, а затем вставить строку nice там.

слово пограничные якоря \b убедитесь, что мы случайно не совпадаем hotdogs etc.