По сути, вам нужно искать границы слов. Поэтому не думайте искать слово leak
, а искать слово $leak#
, где $
- это воображаемый символ, который находится в начале каждого слова, а #
- это воображаемый символ в конце. каждого слова (не стандартное соглашение, просто предположите это для этого примера). Слова разграничены, скажем, пробелами. Итак, leaked
и leaks
- это $leaked#
и $leaks#
. Таким образом, единственная совпадающая часть - это $leak
, а не $leak#
.
Для этого в MySQL условие будет:
REGEXP '[[:<:]]leak[[:>:]]';
Здесь [[:<:]]
- это граница слова в начале слова , а [[:>:]]
- граница слова в конце слова .
Для JavaScript , запрос будет:
/\bleak\b/
Здесь последовательность \b
представляет границу слова (в javascript нет различия между границами начального слова и конечного слова). Он будет работать не только для пробелов, но даже для знаков препинания, например:
.leak
,leak
;leak
будет соответствовать /\bleak\b/
, но aleak
не будет. (Хотя я не уверен насчет MySQL)