php,简单的preg_match_all示例不起作用

时间:2016-12-22 00:40:50

标签: php preg-match-all

似乎preg_match正在工作,直到找到第一个匹配然后停止:

$bgStr="<><><><><><><>";


$regStr='/</';

preg_match_all($regStr,$bgStr,$matches);

echo count($matches);

给我结果:&#34; 1&#34;。我错过了什么?

1 个答案:

答案 0 :(得分:0)

至少有3种逻辑方法可以实现对小于符号的计数。 列出的最后一个是最好/最有效/推荐的......

preg_match_all()有点矫枉过正。 它在一个数组中创建一个数组,其中包含必须计算的元素。

$bgStr="<><><><><><><>";
if(preg_match_all('/</',$bgStr,$matches)){
    echo sizeof($matches[0]);  // counts the fullstring elements that preg_match_all creates
}

count_chars()有点矫枉过正。 为字符串中的每个字符创建一个元素数组,如CodeNumber=>Count

$bgStr="<><><><><><><>";
echo count_chars($bgStr,1)[60];
  

substr_count()是最精简的方法,具体而言   为此目的而设计。 这是一个单功能,单线程   不会产生过多的数据,也不需要额外的变量。

$bgStr="<><><><><><><>";
echo substr_count($bgStr,'<');

上述所有方法都会输出:7