ТОП PHP скрипт сегодня: PHP QR Code

Вы Тут:

Главная ›› Книги ›› PHP 5.0 для чайников ›› Метасимволы

Метасимволы в PHP

Подобно подстановочным символам при поиске файлов и папок операционной системы Windows в регулярных выражениях POSIX используются метасимволы (листинг 15.5).

Листинг 15.5. Использование метасимволов.

<html>
<head>
<title> Использование метасимволов </title>
</head>
<body>
<?php
if ( eregi("php.", "php5 is the best", $regs) )
{
  echo "Строка соответствует шаблону";
}
else
{
  echo "Строка не соответствует шаблону";
}
echo "<br>";
print_r($regs); // выведет Array ( [0] => php5 )
?>
</body>
</html>

Приведенный шаблон содержит специальный символ (точку), означающий любой символ, кроме символа перевода строки. Другими словами, любая строка, содержащая символы php и сразу идущий за ним любой символ, будет удовлетворять этому регулярному выражению. В данном случае php5 is the best является такой строкой. Попробуйте вместо нее написать просто php и посмотрите результат.

Обратите внимание на массив $ regs. В отличие от примера с литералами мы заранее не знали, какой символ будет найден вместо точки. Именно в этих случаях применение необязательного параметра имеет смысл.

Метасимволы ~ и $ часто называют якорями, так как они привязывают слова к началу или концу строки. Например, шаблону "php будет соответствовать любая строка, начинающаяся с символов php (php5, php is the best и т.д.), а шаблону php$ - заканчивающаяся на php (I like php, tophp и т.д.). Заметьте, что строка php будет удовлетворять обоим шаблонам.

Символ вертикальной черты | выполняет функцию оператора или. Например, шаблону php| perl удовлетворяют строки, содержащие либо символы php, либо perl (perl and php, php-приложение, perlovka и др.).

Для выделения отдельных частей шаблона в группы используют круглые скобки (). Например, шаблону php|perl$, будут соответствовать строки, содержащие символы php или оканчивающиеся на perl. Однако если поставить круглые скобки (php 1 perl)$, знак доллара будет относиться к обоим словам, то есть строки должны оканчиваться на php или perl.

Стоит обратить внимание на то, что помимо обычных символов, в шаблонах можно указывать специальные символы, такие как табуляция (\t), перевод строки (\n), возврат каретки (\r) и др. В случае если необходимый символ совпадает с метасимволом, то его надо экранировать с помощью обратной косой черты. Пример:

\. $ - строка должна завершаться точкой;
^\^ - строка должна начинаться со знака
\\ - строка должна содержать символ обратной косой черты.