Regex: найти из обширного списка слов, только целые слова - PullRequest
0 голосов
/ 30 марта 2019

У меня очень длинный текст и длинный список слов, которые я хочу найти в этом тексте.

Прямо сейчас, чтобы найти эти слова, я проверяю "регулярные выражения" и затем нахожу "word1 | word2 | word3 | word4 ..." Проблема в том, что если одним из слов является «есть», то также выделяется каждое слово, содержащее «есть». Как я могу предотвратить это?

1 Ответ

1 голос
/ 30 марта 2019

Вы можете использовать привязки слов, чтобы соответствовать началу и концу слов.(Предполагается, что вы используете что-то, поддерживающее PCRE.)

/\b(word1|word2|word3...)\b/

Бит \b соответствует "границе слова".Из справочной страницы регулярного выражения Perl (man perlre)

Граница слова ("\ b") - это точка между двумя символами, у которой "\ w" на одной стороне от него и ""\ W "на другой стороне (в любом порядке), считая мнимые символы в начале и конце строки как соответствующие" \ W ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...