Unix Man (Справочное руководство)


FLEX(1) - часть 2


%% [\t]+$; [\t]+ printf("");

Программа, созданная по этому источнику, проверяет сразу два правила: контролирует окончание строки пробелов и знаков табуляции и проверяет, имеется ли знак новой строки, затем выполняет действие, предписанное правилом.

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


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

integer

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

a57D

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

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

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

xyz"++"

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

"xyz++"

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

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

xyz\+\+

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




Начало  Назад  Вперед



Книжный магазин