PHP正则表达式 - 检测字符串是否包含单词但不包含单词

时间:2011-12-12 16:46:32

标签: php preg-match

我有一个用PHP编写的系统,它将来自多个数据库的记录聚合到一个数据库中。执行此操作时,我需要检测每条记录是否为ABNORMAL,如果是,则将其标记为是。

为此,我需要preg_match()的模式,因此如果给定的字符串包含单词NORMAL但不包含ABNORMAL,则返回false。给出的字符串可能是多行。

我遇到的问题是ABNORMAL 这个词包含这个词NORMAL

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

使用边界字\b

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

请注意,它区分大小写,不区分大小写的版本为:

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

虽然如果您可以控制数据库,但您可能希望使用0和1(或至少N和A)而不是NORMAL和ABNORMAL。