Добрый вечер, есть строка Код (PHP): $number = '100||||736||||150----031' Необходимо получить массив Код (PHP): Array ( [0] => Array ( [0] => 100||||736||||150----031 ) [1] => Array ( [0] => 100|||| [1] => 736|||| ) [2] => Array ( [0] => |||| [1] => |||| ) [3] => Array ( [0] => ----031 ) ) Разделители '||||' и '----' могут быть любыми символами в любом количестве, за исключением цифр. Возможно ли этого добиться при помощи регулярного выражения? Пробовал такой код: Код (PHP): <?php $number = '100||||736||||150----031'; $reg = '/ ( \d+ ([^\d]+) )+ \d+ ( [^\d$2]+ \d+ ) /x'; $grouped = array(); preg_match_all($reg, $number, $grouped); echo "<pre>"; print_r($grouped); echo "</pre>\n"; ?> Возвращает только последний "карман": Код (PHP): Array ( [0] => Array ( [0] => 100||||736||||150----031 ) [1] => Array ( [0] => 736|||| ) [2] => Array ( [0] => |||| ) [3] => Array ( [0] => ----031 ) )
Мой вариант. Код (Text): $number = '100||||736||||150----031kkkkkkkkkkkkkkkkk000hhhhhhhhhhhhhhhhh777kkkkkkkkkk099'; $array = array(); preg_match_all('/\d{3}/', $number, &$array); Результат : Array ( [0] => Array ( [0] => 100 [1] => 736 [2] => 150 [3] => 031 [4] => 000 [5] => 777 [6] => 099 ) )