Я хотел бы удалить набор слов из строки рубина, используя строчную и безударную версию слов, и сохранить исходную строку с текущим регистром и текущими ударениями.
Например:
string = "Château Dupont Vallée du Rhône"
stopwords= "vallee du Rhone"
Желаемый результат: string = "Château Dupont"
Пока я могу использовать строчные строки без ударения для удаления слов:
string = "chateau dupont vallee du rhone"
stopword = "vallee du rhone"
Пример вывода: string = "chateau dupont"
На самом деле я хочу получить исходную строку, но удалить строку, используя строчную версию слова без акцента.
Мой код:
def remove_appellations_in_string(string, region_id)
down_trans_string = I18n.transliterate(string.dup)
# custom request to order by max length in name
stopwords.each do |stop|
# downcase/unaccent stopword
down_trans_stop = I18n.transliterate(stop.name.downcase)
# remove
down_trans_string.gsub!(down_trans_stop, ' ')
end
return ' ' + string + ' '
end
Полагаю, мне нужно использовать регулярное выражение ИЛИ получить способ получить индексы стоп-слов, чтобы удалить их из исходной строки.