П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 6194 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 8325 раз(а).

Учебник HTML.
Просмотров 4939 раз(а).

Руководство по PHP5.
Просмотров 2071 раз(а).

Хостинг через призму DNS.
Просмотров 7075 раз(а).

Подборка текстов стандартных документов.
Просмотров 57582 раз(а).

Учебник PHP - Самоучитель
Просмотров 5238 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 11365 раз(а).

Внешние атаки...
Просмотров 7456 раз(а).

Учебник PHP.
Просмотров 4340 раз(а).

SSI в примерах.
Просмотров 1245 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 7: Регулярные выражения.
7.5 Операция замены

Мы уже говорили о простейшей форме операции замены: s/ регулярное_выражение/новая_строка/. Пора рассмотреть несколько разновидностей этой операции.

Если вы хотите, чтобы замена выполнялась при всех возможных совпадениях, а не только при первом, добавьте в запись, задающую проведение операции замены, букву д, например:

$_ = "foot fool buffoon";

s/foo/bar/g; # $_ теперь содержит "bart barl bufbarn"

В заменяющей строке производится интерполяция переменных, что позволяет задавать эту строку во время выполнения:

$_ = "hello, world";
$new = "goodbye";
s/hello/$new/; # заменяет hello на goodbye

Символы сопоставления (метасимволы) в регулярном выражении позволяют выполнять сопоставление с образцом, а не просто с символами, трактуемыми буквально:

$_ = "this is a test";
s/(\w+()/<$1>/g; # $_ теперь содержит "<this><is> <a><test>"

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

Суффикс i (перед буквой g или после нее, если она есть) заставляет используемое в операции замены регулярное выражение игнорировать регистр, как и аналогичная опция в ранее рассмотренной нами операции сопоставления.

Как и в операции сопоставления, можно выбрать другой разделитель, если косая черта неудобна. Для этого просто нужно использовать один символ три раза*:

s#fred#barney#; # заменить fred на barney, как в s/fred/barney/

Как и при сопоставлении, можно с помощью операции =~ указать другой объект для проведения замены. В этом случае объект должен быть таким, которому можно присвоить скалярное значение, — например, скалярной переменной или элементом массива:

$which = "this is a test";
$which =~ s/test/quiz/; # $which теперь содержит "this is a quiz"
$someplace[$here] =~ s/left/right/; # заменить элемент массива

$d{"t"} =~ s/^/x /; # поставить "х" перед элементом массива

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru