我有很多字符串,需要检查每个字符串是否包含颜色。
例如:
- 天空中的鸟
- 法国22街道
- 这只狗是蓝色的
- 这只猫是黑白相间的
因此,最后两个字符串必须返回true。
使用正则表达式还是任何substr()进行检查?哪一种方法更好?
我经常使用 strpos
,因为它似乎是最快的选择(不过我不知道正则表达式怎么样)。
if(strpos($haystack, $needle) !== FALSE) return $haystack;
preg_match_all("/(red|blue|black|white|etc)/", $haystack, $matches);
print_r($matches);
在 PHP 中,strpos 或 strripos 应该能够在字符串中搜索单个单词。但是,如果要使用它来搜索所有颜色,则可能需要循环。
if(strpos($haystack, $needle) !== FALSE) return $haystack;
另外需要记住的一件事是,如果您正在寻找"red",则"fred"也将返回结果。 - pathfinderstrpos
是区分大小写的。如果您需要搜索子字符串而不考虑大小写,则应使用stripos
。 - Luís Cruz