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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Глава 7: Регулярные выражения.
7.4 Еще об операции сопоставления
7.4.1 Выбор другого объекта для сопоставления (операция =~)

Обычно строка, которую нужно сопоставить с образцом, не находится в переменной $_, и помещать ее туда довольно утомительно. (Может быть, в переменной $__ уже хранится значение, которое вам не хочется терять.) Ничего страшного — здесь нам поможет операция =~. С ее помощью вы можете назначить для проведения операции сопоставления строку, хранящуюся в переменной, отличной от $_.

Эта переменная указывается справа от знака операции. Выглядит это так:

$а = "hello world";
$а =~ /^he/; # истина
$а =~ /(.)\1/; # тоже истина (соответствует двум 1)

if ($а =~ /(.)\1/) { # истина, поэтому проводятся дальнейшие операции
}

Справа от знака операции =~ может стоять любое выражение, которое дает в результате некоторое скалярное строковое значение. Например, <stdin> при использовании в скалярном контексте дает скалярное строковое значение, поэтому, объединив эту операцию с операцией =~ и операцией сопоставления с регулярным выражением, мы получим компактную программу проверки входных данных:

print "any last request? ";

if (<STDIN> =~ /^[y1]/) { # начинаются ли входные данные с буквы у? 
  print "And just what might that request be?"; # и чтобы это мог быть за запрос?
  <STDIN>; # получить строку со стандартного ввода 
  print "Sorry, I'm unable to do that.\n"; # прошу прощения, но я не могу этого сделать
}

В данном случае при помощи <stdin> берется очередная строка со стандартного ввода, которая затем сразу же используется как строка, сопоставляемая с образцом ^[ yY ]. Отметим, что мы не сохраняли входные данные в переменной, поэтому если мы захотим сопоставить эти данные с другим образцом или же вывести их в сообщении об ошибке, то у нас ничего не выйдет. Тем не менее эта форма часто оказывается удобной.

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



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





Copyright © 2005-2016 Project.Net.Ru