php regex不包含以下任何单词

时间:2015-01-22 09:02:11

标签: php regex

我使用以下正则表达式来检查字符串是否包含以下任何单词:

/(work|hello|yes)/

如何反转它,检查字符串是否不包含以下任何单词?

if (preg_match('/(work|hello|yes)/', trim(strtolower($mystring)))) {

}

注意我不想使用!preg_match

3 个答案:

答案 0 :(得分:1)

如果字符串不包含单词,则可以使用否定looakhead来匹配字符串:

^(?!.*?(?:work|hello|yes)).*

也可能想要在单词之前/之后添加\b word boundaries

Test at regex101.com


如果是多行输入,请使用s(PCRE_DOTALL)flag使.也匹配换行符。

答案 1 :(得分:0)

您错过了' preg_match的第一个参数

$mystring='hello world';
if (preg_match('/(work|hello|yes)/', trim(strtolower($mystring)))) {
    echo 'Yes'; //Result is yes
}else{
    echo 'No';
}

答案 2 :(得分:0)

试试这个:

 $match    = '/work|hello|yes/';
 $myString =  trim(strtolower($mystring));

 if (preg_match($match,$myString)) {

 }