From 9b88375743ae1d5658107e9d42a68da0f751cdc0 Mon Sep 17 00:00:00 2001 From: User Date: Mon, 26 Jun 2023 19:58:05 +0300 Subject: [PATCH] 20230626#1 --- src/Router.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Router.php b/src/Router.php index 8c436d1..d01cd73 100644 --- a/src/Router.php +++ b/src/Router.php @@ -29,11 +29,11 @@ class Router implements RouterInterface { if (!isset($rulesNode['key'], $rulesNode['routes'])) continue; // преобразуем псевдомаску в реальную маску // заменяем алиасы на регвыражения - $realPattern = preg_replace("'<([A-z0-9]+?):@any>'", "(?P<$1>.*)", $rulesNode['key']); - $realPattern = preg_replace("'<([A-z0-9]+?):@num>'", "(?P<$1>[0-9]+)", $realPattern); - $realPattern = preg_replace("'<([A-z0-9]+?):@path>'", "(?P<$1>[^/]+)", $realPattern); + $realPattern = preg_replace("'<([A-z0-9_]+?):@any>'", "(?P<$1>.*)", $rulesNode['key']); + $realPattern = preg_replace("'<([A-z0-9_]+?):@num>'", "(?P<$1>[0-9]+)", $realPattern); + $realPattern = preg_replace("'<([A-z0-9_]+?):@path>'", "(?P<$1>[^/]+)", $realPattern); // поддерживаем свободное регулярное выражение в псевдомаске - $realPattern = preg_replace("'<([A-z0-9]+?):(.+?)>'", "(?P<$1>$2)", $realPattern); + $realPattern = preg_replace("'<([A-z0-9_]+?):(.+?)>'", "(?P<$1>$2)", $realPattern); // заменяем алиасы на регвыражения $realPattern = str_replace(["<@any>", "<@num>", "<@path>"], [".*", "[0-9]+", "[^/]+"], $realPattern); // при наличии слеша в конце правила url должно строго ему соответствовать