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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Глава 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