@nurasyl_mels
Начинающий программист

Регулярное выражение не видит символ «-». Как решить?

Есть шаблоны url, но регулярные выражения не видят знак "-".

Вот код приводящий в регулярку:
$to_match = preg_replace('/{([a-z]+):([^\}]+)}/', '(?P<\1>\2)', $to_match);
$to_match = '#^'.$to_match.'$#';


Проблема: дается шаблон, например item/{name:\w+}. Если перейти по адресу item/item_name, то все нормально. Но если перейти по item/item-name, то уже не находит совпадений.
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 2
iResource
@iResource
Разработчик IR XML2Ozon
Попробуйте перед тем, как передавать шаблон, заэкранировать в нём спецсимволы, в т.ч. дефис. То есть вместо этого item/item-name передавать так: item\/item\-name
Ответ написан
Комментировать
7workers
@7workers
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽