@GeKskill

Regex выделить повторяющиеся группы после символа?

Как в такой строке
https://example.com/category/f/filter-1/filter2/fi...
выделить filter-1, filter-2, filter-3 и т.д. если их больше, но только после /f/?

$re = '/\/f\/(.+?)\//m'; // выделяет только первый filter-1
$re2 = '/(?<=\/f\/)((.+?){1,})\//m'; // а так всю нужную подстроку
$str = 'https://example.com/category/f/filter-1/filter2/filter-3/?orderby=price';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
var_dump($matches);


Оно и с этим можно explode сделать и дальше жить, но интересно как все таки сразу получить нужные значения?
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
@dodo512
$re = '~(?:^.*?/f|\G(?!^))/\K[^/?]+~';
https://regex101.com/r/sDfcQR/1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
Wanted. Санкт-Петербург
До 100 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽