Метасимволы в 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) и др. В случае если необходимый символ совпадает с метасимволом, то его надо экранировать с помощью обратной косой черты. Пример:
\. $ - строка должна завершаться точкой;
^\^ - строка должна начинаться со знака
\\ - строка должна содержать символ обратной косой черты.
Другие на сайте, сейчас читают:
Скриншот 2. Скрипт Build QR Code Generator with PHP and Ajax