if (preg_match('#\b'.$rawword.'\b#i',$body)) {
Этот код находит целые слова, но если они являются дефисом, таким как "ABLE-BODIED", он найдет ABLE и BODIED отдельно. Как можно изменить выражение, чтобы приспособить для тире?
Вы можете использовать операторы lookbehind и lookahead.Этот оператор просматривает позади и после, но не соответствует им.
, например, используйте \b(?<!-)xyz(?!-)\b для нахождения целых слов xyz, у которых нет - до или после.
\b(?<!-)xyz(?!-)\b
xyz
-