Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Как получить именной параметр в RegExp? |
Автор: Kotakota 5.4.2011, 08:30 |
Привет. Есть регулярное выражение: products\/([a-z]+)\/(\d+)'=>'$1/id_$2' Здесь все понятно. То, что сохранено у нас в круглых скобках это $1 и $2 Теперь преобразуем регулярное выражение используя именованные параметры: products\/([a-z]+)\/(?P<tictac>\d+)'=>'$1/id_КАК ЗДЕСЬ ПОДСТАВИТЬ значение <TICTAC>' |
Автор: ksnk 5.4.2011, 09:42 |
. (тут был бред) |
Автор: skyboy 5.4.2011, 10:17 | ||
http://ua.php.net/manual/en/regexp.reference.back-references.php
|
Автор: Kotakota 5.4.2011, 10:57 | ||||||
products\/([a-z]+)\/(?P<tictac>\d+)'=>'$1/id_\k{tictac} и products\/([a-z]+)\/(?P<tictac>\d+)'=>'$1/id_\g{tictac} и products\/([a-z]+)\/(?P<tictac>\d+)'=>'$1/id_(?P=tictac) Значение не подставляется... Просто выводится как текст... ![]() Добавлено @ 10:58
Хорошо, что был... |
Автор: skyboy 5.4.2011, 14:36 |
а почему ты имя объявляешь с "уголками": а при обращении не используешь их: ? |
Автор: Kotakota 6.4.2011, 07:50 | ||
products\/([a-z]+)\/(?P<tictac>\d+)'=>'$1/id_(?P=<tictac>) на выходе $1/id_(?P=) Подстановки не происходит. |
Автор: skyboy 6.4.2011, 08:14 |
я был слишком самоуверен. никогда не использовал сию фишку, но был уверен, что она работает целиком и полностью. но, похоже, именованные группы http://www.php.net/manual/en/function.preg-replace.php#100048 в секции "Найти", но не в "Заменить" :( Какой облом. |