Регулярное выражение PHP - определяет, содержит ли строка слово, но не в другом - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть система, написанная на PHP, которая объединяет записи из нескольких баз данных в одну.При этом мне нужно определить, является ли каждая запись ABNORMAL, и если это так, пометить ее так.

Чтобы сделать это, мне нужен шаблон для preg_match(), поэтому он вернет false, если заданнаяСтрока содержит слово NORMAL, но не ABNORMAL.Данная строка может состоять из нескольких строк.

У меня проблема в том, что слово ABNORMAL содержит слово NORMAL.

Кто-нибудь может помочь?

1 Ответ

3 голосов
/ 12 декабря 2011

Используйте символ ограничения слова \b:

preg_match("|\bNORMAL\b|", $subject);

Обратите внимание, что он чувствителен к регистру, версия без учета регистра выглядит следующим образом:

preg_match("|\bNORMAL\b|i", $subject);

Хотя, если выиметь контроль над вашей базой данных, вы можете использовать 0 и 1 (или хотя бы N и A) вместо NORMAL и ABNORMAL.

...