preg_match
仅返回第一个结果
假设我有字符串abcabcabc
,我想找到ABC的所有索引。 (当然是有点复杂......) - 我怎么能这样做?
谢谢!
答案 0 :(得分:2)
你只需要传入一个变量作为第三个参数,它将与你的所有匹配一起加载。
<?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.";
}