我有很多字符串,我需要检查它们是否都包含颜色。
例如:
因此,最后两个字符串必须返回true。
找到它的最佳方法是什么?
正则表达式,还是检查任何substr()?
答案 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)