查找字符串中是否存在子字符串

时间:2011-08-04 07:33:06

标签: php regex string substr

我有很多字符串,我需要检查它们是否都包含颜色。

例如:

  • 天空中的一只鸟
  • 法国22街
  • 狗是蓝色的
  • 猫是黑白的

因此,最后两个字符串必须返回true。

找到它的最佳方法是什么?

正则表达式,还是检查任何substr()?

4 个答案:

答案 0 :(得分:24)

我一直与strpos合作,因为它似乎是最快的选择(尽管不了解正则表达式)。

if(strpos($haystack, $needle) !== FALSE) return $haystack;

答案 1 :(得分:8)

在regexp中你可以写

preg_match_all("/(red|blue|black|white|etc)/", $haystack, $matches);

print_r($matches);

对所有字符串使用循环,您将很容易注意到所需的$匹配值。

答案 2 :(得分:3)

如果你使用strpos然后它返回一个字符串的位置它将返回一个数字1,2,3等不是真或假。

另一个问题是如果字符串存在于开头,它将返回0,这将被视为false,然后strpos无法找到该字。

答案 3 :(得分:1)

php中的strpos或strripos应该能够在字符串中搜索单个单词。 如果使用它,您可能必须循环才能搜索所有颜色