[ Содержание ] [ Предыдущая ] [ Следующая ]

Регулярные выражения lex

    Регулярное выражение определяет набор строк, которые должны быть сопоставлены. Оно содержит текстовые символы (соответствующие символам в сравниваемых строках) и знаки операторов символы (указывающие на повторение, удаление и другие возможности). Буквы алфавита и цифры всегда являются текстовыми символами. Таким образом, регулярное выражение:

integer

подбирает литерную цепочку integer, где бы она ни появилась, а выражение

a57D

ищет литерную цепочку a57D. Существуют следующие знаки операторов:

" \ [] ^ - ? . * + I () $ / {} % <>

    Если какой-либо из этих знаков используются дословно, то это необходимо отмечать косой чертой (\). Группа знаков выделя- ется кавычками ("). Оператор кавычек указывает на то, что все, содержащееся между двумя выделяющими кавычками, воспринимается как символы текста. Таким образом

xyz"++"

подбирает символьную цепочку xyz++, где бы они ни встретилась. Выделяемую часть символьной цепочки можно заключать в кавычки. Безобидно, но излишне выделять обычную текстовую литеру. Выражение

"xyz++"

эквивалентно предыдущему. Таким образом, заключая в кавычки каждый не алфавитно-цифровой символ, используемый как текстовая литера, вы избавляетесь от необходимости помнить список текущих знаков операторов.

    Знак оператора также может быть преобразован в текстовый символ, если перед ним поставить обратную косую черту (\):

xyz\+\+

    Это менее читабельный эквивалент рассмотренного выше выражения. Механизм заключения в кавычки может быть использован также для того, чтобы вставить в выражение пробел. Обычно пробелы и знаки табуляции заканчивают правило. Любой пробел, не заключенный в скобки, должен браться в кавычки. СИ распознает несколько обычных знаков с обратной косой чертой (\):

\n знак новой строки

\t знак табуляции

\b возврат на один знак назад с его удалением

\\ обратная косая черта

    Поскольку знаки новой строки в выражениях запрещены, надо использовать \n. Не требуется избегать использования знаков табуляции и возврата. Заметим, что любой символ всегда является текстовым. Исключение из этого составляют знаки табуляции, пробелы, знаки новой строки и знаки операторов, рассмотренные выше.

[ Содержание ] [ Предыдущая ] [ Следующая ]

c 1998-2000 SoloTony (Antonio Solo) mailto:solotony@mail.ru