| Вероятно, confirm имел в виду такую конструкцию:
<?php
$str="0,1,1,1,0,1,1,1,0";
preg_match_all("/0,1,1,1,0/",$str,$matches);
echo count($matches); // Все равно массив $matches будет содержать один элемент.
?>
|
Дело в том, что и в первом примере, и в этом в строке "0,1,1,1,0,1,1,1,0" ищется строка "0,1,1,1,0", и после первого прохождения поиска в обоих случаях в искомой строке находится 0,1,1,1,0, а следующая позиция посика начинается с 1 и находит 0,1,1,1,0,1,1,1,0, "1,1,1,0", что не совпадает с условием поиска - 0,1,1,1,0.
Значит, Вам нужна такая регулярка:
<?
$str="0,1,1,1,0,1,1,1,0";
preg_match_all("/(?<=0,)1,1,1(?=,0)/",$str,$matches);
echo "<br>".count($matches[0]); // 2
?>
<pre>
<?
print_r($matches[0]);
?>
</pre>
|
То есть, ищем все "1,1,1", перед и до которых стоит нуль. | |