preg_match_all解释

时间:2014-04-30 16:30:04

标签: php regex

我猜测这个函数在PHP中的确切工作:preg_match_all

$var = "Example";
$n = preg_match_all('/[AEIOU]/i', strtoupper($var), $matches);

echo "$n<p>"; // Output: 3
echo $matches[0][1]; // Output: A

这对我来说几乎是非常清楚的:找到变量$var中元音的所有匹配项,并将它们的数字放在$n中,而找到的匹配项则放在变量$matches中。但是,如果第一个索引必须为0,为什么$matches是一个二维数组呢?不应该像$matches[1]那样吗? (但它没有用)

如何利用下一个索引?

1 个答案:

答案 0 :(得分:1)

“第一个索引必须为0”,因为这是“整个匹配”的索引。索引1将由第一个子模式,如果你有任何。索引2第二个子模式,依此类推。

可以使用PREG_*_ORDER常量调整此行为,请参阅docs