Не обязательные группы записи RegEx

152
01 сентября 2018, 03:10

Имеется вот такой паттерн:

category\/(.+?)\/(:?size\/(.+?)\/)(?:page\/(.+?)\/?)?

В нем 3 группы записи: category/(...)/, size/(...)/ и необязательный page/(...)/. При попытке сделать необязательной группу с size подставлением ? после скобок — всё ломается. Т.е. вот такой паттерн уже не работает:

category\/(.+?)\/(?:size\/(.+?)\/)?(?:page\/(.+?)\/?)?

В итоге хотелось бы что бы значение category записывалось всегда, а size и page только при их наличии. Что я делаю не так?

Answer 1

Проблема с жадностью. Подскажите парсеру, что нужно смотреть до конца строки и все будет работать

category\/(.+?)\/(?:size\/(.+?)\/)?(?:page\/(.+?)\/?)?$

https://regex101.com/r/wiIaNa/2

READ ALSO
парсинг значения биткоин транзакции

парсинг значения биткоин транзакции

Подскажите, как мне спарсить значение транзакции по введенном хэшу например я вытаскиваю с этого адреса транзакции этого хэша https://blockchaininfo/rawtx/53be3ee60ac19d7c6f52c0872fa5d97b887cbc52a399fb4fc55d12189c97bb81

170
Выводить каждый день дату на сайте на php [закрыт]

Выводить каждый день дату на сайте на php [закрыт]

Выводить каждый день дату на сайте на php и красиво ее стилизовать с сss

143
Не могу определить используемый AppAssets Yii2

Не могу определить используемый AppAssets Yii2

Взял на поддержку проект на Yii2В нем в папке assets лежит около 10 файлов

162