RegEx部分字符串匹配

时间:2012-02-10 08:16:22

标签: php regex

在PHP Regex中是否可以进行部分匹配,这样如果我有一个像:

这样的数组
$words = array("john", "steve", "amie", "kristy", "steven");

我提供“jo”它会返回“john”或者如果提供“eve”,它会返回“steve”?

3 个答案:

答案 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遍历数组并匹配您的项目 如果您不提供^$,则会自动进行部分匹配。