` | PARSER | документация |

parser

faqfaq
авторыавторы
документациядокументация

в действиив действии
куда говоритькуда говорить
жаргонжаргон

скачатьскачать

примерыпримеры
форумфорум

документация

3. Операторы Парсера

3.11. Поиск и замена с использованием регулярных выражений

3.11.1. Поиск подстроки по шаблону. Оператор match

Формат вызова

^match[шаблон;настройки;строка]

Аргументы

шаблон — шаблон для поиска.

настройки — символы, задающие режим поиска.

строка — строка, в которой проводится поиск.

Описание

Оператор ищет в строке подстроку, соответствующую шаблону. Шаблон — это регулярное выражение, соответствующее стандарту POSIX 1003.2, раздел 2.8, частичный перевод которого приведен в Приложении C. В дополнение к возможностям, которые устанавливает этот стандарт, в Парсере предусмотрены следующие обозначения:

\\ — обратная косая черта (“бэк-слэш”);
\t — символ табуляции;
\d — любая цифра от 0 до 9;
\s — пробел, символ табуляции, символ перевода строки.

Предусмотрены следующие режимы поиска:

i — не учитывать регистр;
n — исключить конец строки из заданного в шаблоне поиска “любого символа”.

Поскольку символы ^ и $ используются в Парсере, в шаблоне вместо символа ^ используется строка ^^ (см. п. 1.2), а вместо символа $ — строка $$ (см. п. 1.3).

Если в шаблоне не используются круглые скобки, то при обнаружении строки, соответствующей шаблону, оператор возвращает значение yes. В противном случае оператор возвращает пустую строку.

Если в шаблоне используются круглые скобки, то содержимое текущей таблицы заменяется результатами поиска, а оператор возвращает пустую строку. При этом подстрока, отвечающая части шаблона, заключенной в круглые скобки, заносится в столбец с именем вида \позиция, где позиция — это номер открывающей круглой скобки. Например, вызов ^match[(.(.));;ab] запишет в столбец \1 текущей таблицы значение ab, а в столбец \2 — b.

Начало строки до подстроки, отвечающей шаблону, заносится в столбец prematch. Например, вызов ^match[b.;;abcd] запишет в столбец prematch значение a.

Подстрока, отвечающая шаблону, заносится в столбец match. Например, вызов ^match[b.;;abcd] запишет в столбец match значение bc.

Конец строки после подстроки, отвечающей шаблону, заносится в столбец postmatch. Например, вызов ^match[b.;;abcd] запишет в столбец postmatch значение d.

Примеры

Вызов ^match[^^apple.*;;apple169] вернет значение yes.

^context[temp;
^match[
([a-z]+)([^^a-z]+)$$;;apple169]
^item[
\2]
]

Обработка приведенного выше фрагмента вернет 169.

3.11.2. Замена подстроки, отвечающей шаблону. Оператор match

Формат вызова

^match[шаблон;настройки;замена;строка]

Аргументы

шаблон — шаблон для поиска.

настройки — символы, задающие режим поиска.

замена — подстрока, на которую нужно заменить подстроку, отвечающую шаблону.

строка — строка, в которой проводится поиск и замена.

Описание

Оператор ищет в строке подстроку, отвечающую шаблону, заменяет ее другой подстрокой и возвращает полученный результат. Шаблон поиска устроен так же, как у оператора match с тремя аргументами (см. п. 3.11.1). В дополнение к режимам поиска, предусмотренным в операторе match с тремя аргументами, добавляется режим g, подразумевающий замену всех найденных вхождений.

Примеры

Вызов ^match[apple;g;orange;I like apples] вернет I like oranges.


E-mail: mailbox@parser.ruCopyright © 1997-2001 Студия Артемия Лебедева
`