Хороший способ вставить строку перед регулярным выражением в 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.