Мнимые символы — это просто участок строки между соседними символами (да, именно так, как это ни абсурдно), удовлетворяющий некоторым свойствам. Фактически, мнимый символ — это некая позиция в строке. Например, символ ^ соответствует началу строки (заметьте: не первому символу строки, а в точности началу строки, позиции перед первым символом), а $ — ее концу (опять же, позиции за концом строки).
Чтобы это понять, давайте рассмотрим выражение ^abc, которое соответствует любой строке, начинающейся с abc, и выражение abc$, соответствующее строке с abc
на "хвосте". Наконец, выражение ^abc$ сопоставимо только со строкой abc, и в этом смысле оно эквивалентно сравнению на равенство.
Существуют еще два мнимых символа, задающих начало и конец слова. Первый из них обозначается как [[:<:]]
и указывает на позицию перед первой буквой очередного слова. Последний записывается в виде [[:>:]]
и сигнализирует о позиции после последнего символа слова. Под словом здесь понимается фрагмент строки, удовлетворяющий выражению [[:alnum:]]+, ò. å., любая последовательность из букв и цифр.
Язык RegEx поддерживает только четыре уже рассмотренных нами мнимых символа. Этого нельзя сказать о формате PCRE, в котором, наоборот, количество таких символов доведено до абсурда.
Вот пример использования мнимых символов:
$st=" string ";
if(ereg("[[:<:]]([[:alnum:]]+)[[:>:]]",$st,$Pock))
echo "Найдено слово: $Pock[1]";