Regexp — Как сопоставить все слова, кроме строгих?

Я пытаюсь найти регулярное выражение, которое исключает конкретное слово, но не слова, содержащие его.

Например, если мы исключаем слово «дом»

home --> NOT OK
homefree -> OK
freehome -> OK

Есть идеи ?

Спасибо

4

Решение

Я бы порекомендовал взглянуть на Рексегг — Слово Границы.

Если вы хотите сопоставить строки, не содержащие сам «home», вы можете сделать:

preg_match_all('/^(?!.*\bhome\b).*$/im', $str, $matches);

Если вы хотите сопоставить только слова:

preg_match_all('/\b(?!home\b)\w+/i', $str, $matches);
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector