如何在一个字符串中搜索两个字符串?

时间:2014-10-30 05:17:23

标签: php string

嗨我必须在一个字符串中搜索两个字符串。 例如

$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进行搜索一样)

2 个答案:

答案 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";。这是一种更短的方法。