Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получить именной параметр в RegExp? 
:(
    Опции темы
Kotakota
Дата 5.4.2011, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 14.12.2010

Репутация: нет
Всего: нет



Привет.

Есть регулярное выражение:
products\/([a-z]+)\/(\d+)'=>'$1/id_$2'

Здесь все понятно. То, что сохранено у нас в круглых скобках это $1 и $2

Теперь преобразуем регулярное выражение используя именованные параметры:
products\/([a-z]+)\/(?P<tictac>\d+)'=>'$1/id_КАК ЗДЕСЬ ПОДСТАВИТЬ значение <TICTAC>'
PM MAIL   Вверх
ksnk
Дата 5.4.2011, 09:42 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



(тут был бред)

Это сообщение отредактировал(а) ksnk - 5.4.2011, 10:29


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
skyboy
Дата 5.4.2011, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



http://ua.php.net/manual/en/regexp.referen...-references.php
Цитата

Back references to the named subpatterns can be achieved by (?P=name) or, since PHP 5.2.2, also by \k<name> or \k'name'. Additionally PHP 5.2.4 added support for \k{name} and \g{name}. 

PM MAIL   Вверх
Kotakota
Дата 5.4.2011, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 14.12.2010

Репутация: нет
Всего: нет



Цитата(skyboy @ 5.4.2011,  10:17)
http://ua.php.net/manual/en/regexp.referen...-references.php
Цитата

Back references to the named subpatterns can be achieved by (?P=name) or, since PHP 5.2.2, also by \k<name> or \k'name'. Additionally PHP 5.2.4 added support for \k{name} and \g{name}. 

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)

Значение не подставляется... Просто выводится как текст...
 smile

Добавлено @ 10:58
Цитата(ksnk @ 5.4.2011,  09:42)
(тут был бред)

Хорошо, что был...

Это сообщение отредактировал(а) Kotakota - 5.4.2011, 11:27
PM MAIL   Вверх
skyboy
Дата 5.4.2011, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Kotakota @  5.4.2011,  09:57 Найти цитируемый пост)
Значение не подставляется... Просто выводится как текст...

а почему ты имя объявляешь с "уголками":
Цитата(Kotakota @  5.4.2011,  09:57 Найти цитируемый пост)
(?P<tictac>

а при обращении не используешь их:
Цитата(Kotakota @  5.4.2011,  09:57 Найти цитируемый пост)
(?P=tictac)

?
PM MAIL   Вверх
Kotakota
Дата 6.4.2011, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 14.12.2010

Репутация: нет
Всего: нет



Цитата(skyboy @ 5.4.2011,  14:36)
Цитата(Kotakota @  5.4.2011,  09:57 Найти цитируемый пост)
Значение не подставляется... Просто выводится как текст...

а почему ты имя объявляешь с "уголками":
Цитата(Kotakota @  5.4.2011,  09:57 Найти цитируемый пост)
(?P<tictac>

а при обращении не используешь их:
Цитата(Kotakota @  5.4.2011,  09:57 Найти цитируемый пост)
(?P=tictac)

?

products\/([a-z]+)\/(?P<tictac>\d+)'=>'$1/id_(?P=<tictac>)

на выходе

$1/id_(?P=)

Подстановки не происходит.
PM MAIL   Вверх
skyboy
Дата 6.4.2011, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



я был слишком самоуверен.
никогда не использовал сию фишку, но был уверен, что она работает целиком и полностью.
но, похоже, именованные группы работают только в секции "Найти", но не в "Заменить" :(
Какой облом.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0746 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.