Людям, незнакомым с языками сравнения, они кажутся поначалу очень загадочными и недоступными пониманию, но не волнуйтесь - идея действительно очень проста. Некоторым символам, часто называемым подстановочными знаками или мета-символами, задают специальное значение. Каждый из этих символов будет соответствовать частям первоначального текста только если они отвечают некоторым условиям. Если текст соответствует, то он может быть заменен чем-нибудь еще. Например, звездочка "*" будет соответствовать любой произвольной группе символов, независимо от того, каковы они. Это обычно используется использования с разделами текста, в котором вы не уверены. Например, вы пытаетесь создать соответствие любому слову, которое бы заканчивалось буквами "ko". Использование "*ko" будет соответствовать "Naoko" или "Atsuko", но это не будет соответствовать "Michie". В то же время, что-то вроде "john*smith" будет соответствовать "John W Smith", "John 'Bubba' Smith", не говоря уже о просто "John Smith".

Терперь применим эту идею к HTML. Скажем, вы хотите создать соответствие всем тэгам изображений. Тэг изображения всегда начинается с "<img" и заканчивается ">", но может также иметь много чего посередине. Тогда можно использовать выражение соответствия подобно "< img*>". Это похоже на высказывание:

Соответствует чему-либо, что начинается с <img, возможно имеет что-то еще здесь, затем заканчивается на ">".

Тогда в тексте замены вы можете написать свой тэг изображения. Можно даже "зафиксировать" части первоначального текста, которые вы, возможно, захотите сохранить (например URL изображения) и использовать в тексте замены. Смотрите дальше:
Соответствие:
Замена:
<img * src = (\w)\1 * >
< img src =\1 border=1 >

Это представляет несколько новых идей, прежде всего "\w" (или соответствие слову) будет соответствовать любой непрерывной строке текста, не прерываемого пробелом - это полезно для соответствия URL. Круглые скобки "(...)", сопровождаемые "\1" означают "Взять то, что соответствует выражению между (...), поместить это в переменную номер один". "\1" в тексте замены затем просто вставляет содержимое переменной номер один в этом месте. Язык сравнения текста Proxomitron'а разрешает десять таких переменных, пронумерованных от 0 до 9. Приведенное в действие, вышеупомянутое правило будет перезаписывать тэги изображений, например:

<img align=left src="bison.gif" alt="My pet bison Phil"

будет заменено на:

<img src="bison.gif" border=1 >

Синяя часть - это то, что соответствует первому "*".
Красная часть - это то, что соответствует "(\w)\1".
Зеленая часть - это то, что соответствует последнему "*".

Заметьте, что синие и зеленые части никогда не появляются в тексте замены. Остается только часть, которую мы решили сохранить, используя переменную. Решая, что сохранять и что отбрасывать, мы можем полностью переделывать HTML. Например, мы хотим заменить вышеупомянутое изображение так, чтобы броузер, вместо того чтобы показывать его нам, давал бы нам ссылку, на которую надо нажать для просмотра изображения. Если мы изменим текст замены так:

Замена: <a href=\1 > Картинка </a>

Тогда тот же самый текст:

<img align=left src="bison.gif" alt="My pet bison Phil">

теперь будет выглядеть так:

<href = "bison.gif"> Картинка </a>

Надеюсь, это пояснит вам коротко идею, как работает соответствие образцу. Читайте о других мета-символах, чтобы узнать больше о применении этих идей в деле.

Вернуться к правилам соответствия.