У меня есть регулярное выражение для соответствия URI. Например,
preg_match("/^my\/uri\//i", "my/uri/whatever");
Который я использую для маршрутизации, например, « http://www.mywebsite.com/my/uri/page.html » будет соответствовать вышеуказанному (с удаленным протоколом / хостом).
Есть ли способ оценить регулярное выражение в наиболее общем URI, который будет соответствовать? Например,
"Мой / URI /"
Я не понимал, чего вы на самом деле хотите.
Этот код может быть тем, что вам нужно:
$general_uri = 'my/uri/'; $regex = '/^' . preg_quote($general_uri) . '/i';
Если вы хотите изменить код выше:
$regex = '/^my\/uri\//i'; $general_uri = str_replace('\\', '', preg_replace('/^\/\^(.*)\/i?$/', '$1', $regex));
Однако выше код не будет работать над сложными регулярными выражениями.
Может быть, если вы можете сказать исходную проблему, которая приведет вас в этот тупик, кто-то может закрутить ситуацию.
Я сделал себе алгоритм маршрутизации, и я просто использую и взорваюсь в '/', и он работает очень хорошо, что-то вроде Magento или Zend Framework , регистрирует контроллеры маршрутов или маршрутизаторы и связывает их.
Возможно, ваша исходная проблема может быть решена без необходимости писать механизм регулярных выражений с помощью PHP.