Я строю функцию поиска ненормативной лексики, которая должна находить экземпляры массива ненормативных слов в длинной строке текста.
Можно сделать простой include
, например:
if profane_words.any? {|word| self.name.downcase.include? word}
...
end
Это приводит к положительному совпадению, если в тексте присутствует ЛЮБОЙ массив ненормативных слов.
Однако , если такое слово, как «ад», считается профанным, это приведет к положительному совпадению с «Ангелами ада» или «Кухней ада», что нежелательно.
Как можно изменить приведенный выше поиск, чтобы получить только положительные результаты против отдельных слов или фраз ? Например, «Ангелы ада» возвращают положительное значение, а «Ангелы ада» возвращают отрицательное значение.
Чтобы было ясно, это означает, что мы ищем любой случай ненормативного слова, которому непосредственно предшествует или следует другой символ или апостроф.