preg匹配计数匹配

时间:2010-06-17 17:38:51

标签: php regex

我有一个preg匹配语句,它检查匹配,但我想知道如何计算匹配。任何建议表示赞赏。

$message='[tag] [tag]';
preg_match('/\[tag]\b/i',$message);

例如,此消息字符串的计数应该导致2个匹配

5 个答案:

答案 0 :(得分:23)

$message='[tag] [tag]';
echo preg_match_all('/\\[tag\\](?>\\s|$)/i', $message, $matches);

给出2。请注意,您无法使用\b,因为字边界位于]之前,而不是之后。

请参阅preg_match_all

答案 1 :(得分:9)

preg_match已经返回模式匹配的次数。

然而,这只会是0或1,因为它在第一场比赛后停止。您可以使用preg_match_all,因为它会检查整个字符串并返回匹配的总数。

答案 2 :(得分:4)

如果要匹配所有匹配项,则应使用preg_match_allpreg_match_all返回匹配数。 preg_match仅返回0或1,因为它只匹配一次。

答案 3 :(得分:3)

我认为你需要preg_match_all。它返回它找到的匹配数。 preg_match在第一个之后停止。

答案 4 :(得分:0)

您可以将T-Regx libraryfunction extractFunction(){ video.addEventListener('timeupdate', function() { if (video.currentTime >= endTime) { this.pause; } }, false); video.load(); video.play(); try { video.currentTime = starttime; ctx.drawImage($this, 0, 0); setTimeout(loop, 1000 / 30); // drawing at 30fps } catch (ex) { } } 方法(甚至自动定界符)一起使用:

count()