Задать вопрос

Почему регулярное выражение захватывает только первый элемент?

текст:

Число 560
Размерный ряд: 42 88,44,46
#Цена: 400 руб 400коп. шт.
Место: 2А-75 корпус А

/(?<=ряд:\s)(?:\d+)/gm

выводит только 42 , а мне надо чтобы был захват всех чисел до конца строки
42
88
44
46

объясните плз
  • Вопрос задан
  • 115 просмотров
Подписаться 2 Простой Комментировать
Решение пользователя dodo512 К ответам на вопрос (2)
@dodo512
$str = 'Число 560
Размерный ряд: 42 88,44,46
#Цена: 400 руб 400коп. шт.
Место: 2А-75 корпус А';

preg_match('/ряд:.+/', $str, $m);

preg_match_all('/\d+/', $m[0], $r);

print_r($r[0]);


Или
preg_match_all('/(?:\G(?!^)|ряд:)[\s,]\K\d+/', $str, $r);

https://regex101.com/r/aMEAGG/1
Ответ написан