PHP中是否有一个使用Regex并返回结果数组的函数?

时间:2011-08-29 20:28:30

标签: php regex list

preg_match仅返回第一个结果 假设我有字符串abcabcabc,我想找到ABC的所有索引。 (当然是有点复杂......) - 我怎么能这样做? 谢谢!

3 个答案:

答案 0 :(得分:2)

preg_match_all

你只需要传入一个变量作为第三个参数,它将与你的所有匹配一起加载。

Example

<?php
$pattern = "/{[^}]*}/";
$subject = "{token1} foo {token2} bar";
preg_match_all($pattern, $subject, $matches);
print_r($matches);
?>

输出:

Array
(
    [0] => Array
        (
            [0] => {token1}
            [1] => {token2}
        )

)

答案 1 :(得分:2)

preg_match_all不适合你? preg_match_all

答案 2 :(得分:2)

preg_match_all( $pattern, $subject, $matches )

像这样使用preg_match_all返回一个int但填充$ matches数组 Look here用于功能文档。
你的例子可以这样解决:

$subject = "abcabcabc";
$pattern = "/abc/";
if( preg_match_all( $pattern, $subject, $matches ) ) {
    print_r($matches);
} else {
    echo "No match.";
}