Я пытаюсь найти регулярное выражение, которое исключает конкретное слово, но не слова, содержащие его.
Например, если мы исключаем слово «дом»
home --> NOT OK
homefree -> OK
freehome -> OK
Есть идеи ?
Спасибо
Я бы порекомендовал взглянуть на Рексегг — Слово Границы.
Если вы хотите сопоставить строки, не содержащие сам «home», вы можете сделать:
preg_match_all('/^(?!.*\bhome\b).*$/im', $str, $matches);
Если вы хотите сопоставить только слова:
preg_match_all('/\b(?!home\b)\w+/i', $str, $matches);
Других решений пока нет …