1

我有一个这样的字符串:

$string = '[Canada] [United States]';

我需要检测这样的东西

if($string contains Canada) {
 // Do stuff for Canada
}
4

3 回答 3

4

您可以提取 和 之间的所有文本[]然后查看是否在结果数组中找到它。

preg_match_all('/\[(.*?)\]/', $string, $matches);

if (in_array('Canada', $matches[1])) {
    echo 'Hello, Canada!';
}

键盘

如果您只使用子字符串搜索函数,您将面临搜索的字符串是括号之间较大块的子字符串的风险。

于 2012-04-07T02:59:56.867 回答
2

如果您正在进行简单的文本匹配,并且不希望使用正则表达式引擎的开销,那么该strpos函数可能就是您正在寻找的。有关更多详细信息,请参阅strpos的 PHP 手册页面。

if(strpos($string,"Canada")!==FALSE){
    // Do stuff for Canada
}

由于手册指出,对于程序员只关心查找匹配项而不关心匹配项所在的位置的情况,该函数的使用strpos()是首选,因此速度更快且内存占用更少。strstr()strpos()

于 2012-04-07T03:04:16.770 回答
0

使用strstr().

于 2012-04-07T02:59:37.100 回答