我是PHP的新手。我有一个字符串。我用它来查找strpos
函数的单词
例如。
$a= "google" ;
$b= "google is best one" ;
if(strpos($b, $a) !== false) {
echo "true, " ; // Working Fine...
}
所以我想在这种情况下检查我的示例
$a= "google,yahoo,Bing" ;
$b= "Bing is Good " ;
if(strpos($b, $a) !== false) {
echo "true, " ; // I Need True...
}
这就是您使用PHP的方式
答案 0 :(得分:0)
为澄清起见,您似乎正在尝试执行匹配,以使$a
中包含$b
的值列表中的任何值。用简单的strpos()
调用是不可能的,因为strpos()
会查找您要传递的字符串的确切位置。
您要尝试的是基于模式的搜索。为了使这项工作有效,请注意使用带有preg_match()
的正则表达式。这样的例子可能像这样:
$pattern = '/google|yahoo|Bing/';
$target_string = 'Bing is good';
if(preg_match($pattern, $target_string)) {
echo "true, ";
}
有关更多信息,请研究正则表达式语法并对其进行处理,直到您熟悉它们的工作原理为止。
答案 1 :(得分:0)
使用explode()在逗号上分割字符串,然后分别检查每个部分:
%
答案 2 :(得分:0)
就像Patrick Q所说,数组示例中的放置名称是here
因为您要搜索所有三个单词“ google,yahoo,Bing”,所以这三个单词都不正确。
但供初学者了解其他方式。
>>> lst = ['abs', '@abs', '&abs']
>>> new_lst = [l for l in lst if all(x not in l for x in ['@','&'])]
>>> new_lst
['abs']
>>>
您还可以循环检查
答案 3 :(得分:0)
您可以使用正则表达式解决问题:
if (preg_match('/string1|string2|string3/i', $str)){
//if one of them found
}else{
//all of them can not found
}