Совпадение URL с использованием Regex - PullRequest
0 голосов
/ 10 февраля 2020

Я использую следующий шаблон регулярных выражений в PHP (Symfony framework) для соответствия URL

^/api/v1/account/verify
^/api/v1/account/register
^/api/v1/account/forgot-password

Теперь у меня есть следующий URL

/api/v1/payment/{token}/success/jJBePenWo0eN

{token} будет состоять значений Dynami c, но строка «jJBePenWo0eN» всегда будет иметь значение c Как мне найти совпадение, которое будет соответствовать указанному выше URL?

Обновление: 1

Я ищу что-то вроде этого

^/api/v1/payment/[a-zA-Z0-9]/success/jJBePenWo0eN

Однако это не работает

1 Ответ

1 голос
/ 10 февраля 2020

Вы можете сделать регулярное выражение, как показано ниже:

'/^\/api\/v1\/payment\/(.+?)\/success\/jJBePenWo0eN$/'

, где мы сопоставляем строку от начала до конца (обратите внимание на символы ^ и $) и жадно сопоставляем значение {token} в (.+?) группа.

Фрагмент:

<?php

if(preg_match('/^\/api\/v1\/payment\/(.+?)\/success\/jJBePenWo0eN$/','/api/v1/payment/{token}/success/jJBePenWo0eN',$matches) === 1){
    print_r($matches);    
}

Демонстрация: https://3v4l.org/2pjjq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...