Регулярные выражения POSIX – Метасимволы

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if ( eregi("php.", "php5 is the best", $regs) )
{
echo "Строка соответствует шаблону";
}
else
{
echo "Строка не соответствует шаблону";
}
echo "<br />";
print_r($regs);
// выведет
Array ( [0] => php5 )
?>

Приведенный шаблон содержит специальный символ (точку), означающий любой символ, кроме символа перевода строки. Другими словами, любая строка, содержащая символы 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 | perl )$, знак доллара будет относиться к обоим словам, то есть строки должны оканчиваться на php или perl.

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

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

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100