Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: именнавання ссылка при замене
 
 автор: duhon   (24.11.2011 в 14:14)   письмо автору
 
 

<?php
echo preg_replace('/b(?<sub>a)b/''<|$sub|>''bab');
//ожидаю
b<|a|>b
?>

то есть я хочу узнать как ссылаться на именованию группу в замене.
Ответ ожидаю отличным от:
1) Обращаться к номеру легко, но не всегда возможно.
2) Можно еще использовать калбек функцию, хотя для простых вещей как то некрасиво. Вот я думаю может я что то упустил.

Ну если вариантов кроме выше описных больше нету, то ладно, мне просто интересно.

  Ответить  
 
 автор: cheops   (24.11.2011 в 14:21)   письмо автору
 
   для: duhon   (24.11.2011 в 14:14)
 

Т.е. имеется в виду, как сослаться на то, что в круглых скобках?

  Ответить  
 
 автор: duhon   (24.11.2011 в 14:42)   письмо автору
 
   для: cheops   (24.11.2011 в 14:21)
 

да, но именно на именованную.
echo preg_replace('/b(?<sub>a)b/', '<|$sub|>', 'bab');

в данном примере можно было бы сослаться на его номер $1 или \1, но бывают ситуации когда патерн не полностью известен.

Например
<?php
$var 
//какая то часть шаблона которая возможно в какой то момент может включать в себя группу тоесть ()
$text //входящий тект сейчас не имеет значения, тоесть без разницы что там
echo preg_replace("/b $var (?<my>ba)/""<$1>"$text);
?>

в конечном итоге сослаться на уникальное имя $my было бы разумней

  Ответить  
 
 автор: cheops   (24.11.2011 в 15:25)   письмо автору
 
   для: duhon   (24.11.2011 в 14:42)
 

Ну нет... такого нет, да и разумно использовать цифры. Регулярные выражения не велики (их для этого и создавали, чтобы сложную задачу коротко записывать), а цифры не обладают побочным эффектом... с другими же символами мороки много... а ну как вы кавычку выделите или слеш - голову потом сломаешь как экранировать...

PS В PHP вообще не очень удачная инфраструктура регулярных выражений. По уму ими бы нужно пользоваться без кавычек, как в Perl, JavaScript или AcrionScript...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования