嗨我必须在一个字符串中搜索两个字符串。 例如
$string = "The quick brown fox jumped over a lazy cat";
if($string contains both brown and lazy){
then execute my code
}
我尝试过像这样的pregmatch,
if(preg_match("/(brown|lazy)/i", $string)){
execute my code
}
但如果循环中有一个存在于字符串中,则输入if。但我希望它只有在父字符串中存在两个字符串时才进入if条件。我怎样才能做到这一点。
NoTE:我不希望循环遍历字符串。 (就像explode
字符串和foreach
在爆炸数组上并使用strpos
进行搜索一样)
答案 0 :(得分:5)
尝试
if(preg_match("/(brown)/i", $string) && preg_match("/(lazy)/i", $string)){
execute my code
}
Yon也可以尝试使用strpos
if(strpos($string, 'brown') >= 0 && strpos($string, 'lazy') >= 0){
execute my code
}
答案 1 :(得分:3)
迟到的答案,如果您希望测试两个单词的完全匹配:
$regex= "/\b(brown)\b[^.]*\b(lazy)\b/i";
$string = "The quick brown fox jumped over a lazy cat";
if(preg_match($regex, $string))
{
echo 'True';
} else {
echo 'False';
}
$regex = "/(brown)[^.]*(lazy)/i";
。这是一种更短的方法。