Задать вопрос
@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 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@dodo512
$re = '~(?:^.*?/f|\G(?!^))/\K[^/?]+~';
https://regex101.com/r/sDfcQR/1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
Wanted. Санкт-Петербург
До 100 000 ₽
26 дек. 2024, в 23:03
500 руб./в час
26 дек. 2024, в 21:50
5000 руб./за проект
26 дек. 2024, в 21:01
10000 руб./за проект