在PHP Regex中是否可以进行部分匹配,这样如果我有一个像:
这样的数组$words = array("john", "steve", "amie", "kristy", "steven");
我提供“jo”它会返回“john”或者如果提供“eve”,它会返回“steve”?
答案 0 :(得分:1)
如果您只需要查找子字符串,请使用strpos(对于区分大小写的搜索)或stripos进行不区分大小写的搜索。
如果你需要正则表达式,那么你可以在两端指定通配符:/.*jo.*/
这将强制它始终匹配“dojo”,“jo”,“joe”,“dojos”等。
要在数组中搜索您的模式,请查看preg_grep - 这样您就可以传入正则表达式(/.*jo.*/
)作为第一个参数,将数组作为第二个参数传递({{1} }),并返回与你的正则表达式匹配的任何元素。
答案 1 :(得分:1)
$words = array("john","jogi", "steve", "amie", "kristy", "steven");
foreach ($words as $value) {
if (preg_match("|jo|", $value)) {
$arr[] = $value;
}
}
var_dump($arr);
这将使用john和jogi返回数组
答案 2 :(得分:0)
您可以使用preg_match遍历数组并匹配您的项目
如果您不提供^
和$
,则会自动进行部分匹配。