Вот путь URI Мне нужно разобрать:Regex в течение первых 3-х компонентов пути URI
тамтам/сэм/бета-лес% E2% 84% A2/продукт-а
мне нужно извлекать только первые три компонента, которые заканчиваются косой чертой.
preg_match("/^([\w\/ %\.-]*){3}/", $input_line, $output_array);
Это почти дает мне то, что я хочу, но это исключает «% E2% 84% A2». Я перестраивал вещи на http://www.phpliveregex.com/, но безрезультатно.
Обратите внимание, что если я попытаюсь просто разобрать полный URL-адрес, скажите mysite.com/tom-tom/sam/beta-forest%E2%84%A2/product-a, то это регулярное выражение доставит мне то, что я хочу:
preg_match ("/^(https?://)?([\da-z.-]+).([az.]{2,6})([/\w %. -] *) {3} // ", $ path, $ output_array);
Мне нужно разобрать маршрут URI, и мне нужно включить знак%. Вздох ..
Edit:
Мой ожидается выход:
tom-tom/sam/beta-forest%E2%84%A2/
Что ваш ожидаемый результат? –
Возможно, parse_url может быть вам полезен http://mx1.php.net/manual/es/function.parse-url.php –
@Alx http://regex101.com/r/rD4sO4/2 –