我有很多字符串,我需要检查每个字符串是否包含颜色。
例如 :
- 天空中的一只鸟
- 法国22街
- 狗是蓝色的
- 猫是黑白的
因此,最后两个字符串必须返回 true。
找到它的最佳方法是什么?
正则表达式,或检查任何 substr() ?
我总是使用它,strpos
因为它似乎是最快的选择(虽然不知道正则表达式)。
if(strpos($haystack, $needle) !== FALSE) return $haystack;
在正则表达式中你可以写
preg_match_all("/(red|blue|black|white|etc)/", $haystack, $matches);
print_r($matches);
对所有字符串使用循环,您会很容易注意到 $matches 中的哪些值是您需要的。
如果您将使用 strpos 那么它会返回一个字符串的位置,它将返回一个数字 1、2、3 等,而不是 true 或 false。
另一个问题是如果字符串在开始时存在,它将返回 0,这将被认为是 false,然后 strpos 找不到该单词。
php 中的 strpos 或 strripos 应该能够在字符串中搜索单个单词。如果使用它,您可能必须循环以搜索所有颜色