lex (813547), страница 2

Файл №813547 lex (Метода по лексу) 2 страницаlex (813547) страница 22020-11-07СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Вданном случае экранировать пять обычных символов (ALPHA) в начале этой строки нетнеобходимости. В общем случае экранирование обычных текстовых символов необязательно,хотя никакого вреда не приносит. Например, следующее регулярное выражение полностьюаналогично предыдущему:"ALPHA++"Следует отметить, что кавычки обычно применятся для группового экранированияметасимволов. Отдельный метасимвол будет интерпретироваться как литерал, если врегулярном выражении ему предшествует знак обратной дробной черты (\). Например, вследующем регулярном выражении знак обратной дробной черты экранирует специальныйсмысл метасимвола *:ALPHA\*BETAЕще один пример индивидуального экранирования иллюстрирует следующее регулярноевыражение где обратная дробная черта экранирует метасимвол /:CAD\/CAMЭто регулярное выражение обеспечивает распознавание во входном потоке распространеннойаббревиатуры CAD/CAM, которая часто встречается в научно-технической литературе посистемам автоматизированного проектирования.Механизм экранирования может быть использован также при необходимости вставки врегулярное выражение символа пробела.

По определенным причинам, связанным сособенностями обработки регулярных выражений генератором LEX, символ пробел не можетбыть непосредственно включен в регулярное выражение как любой другой текстовый символ,например, буква или цифра. Поэтому любые пробелы, за исключением указанных в классахсимволов (смотрите ниже), должны экранироваться как, например, в следующем регулярномвыражении, где метасимволы кавычек необходимы для вставки пробела между словами regularи expression:regular" "expressionАналогичный результат предоставляет следующее регулярное выражение, где экранированиепробела обеспечивает метасимвол обратной дробной черты:regular\ expressionКОДЫ СИМВОЛОВ И ЛИТЕРАЛЬНЫЕ КОНСТАНТЫЭкранирующий символ обратной дробной черты также применяется в регулярных выражениях,чтобы специальным образом распознавать несколько наиболее часто употребляемыхобозначений литеральных констант языка программирования С.

В частности, литеральнаяконстанта \n обозначает символ перевода строки, а \t - символ горизонтальной табуляции.Имеется также возможность непосредственно специфицировать в регулярном выражении кодASCII любого символа в системе счисления по основанию 8, указав его после символа обратнойдробной черты. Например, в следующем регулярном выражении для обозначения пробеламежду словами Lexical и analyzer используется его ASCII-код, равный 40 в системе счисленияпо основанию 8:Lexical\040analyzerЛитеральные константы и ASCII-коды символов обычно применяются в регулярныхвыражениях для обозначения неотображаемых символов, которые проблематично выразитьиным способом. В частности, служебный символ Escape, который обычно используется дляформирования управляющих последовательностей, можно вставить в регулярное выражение,непосредственно специфицируя его ASCII-код, равный 033 в системе счисления пооснованию 8.Например, следующее регулярное выражение обозначает Escape последовательность, котораяобеспечивает очистку экрана консоли в режиме прозрачного ввода терминального интерфейсаOS UNIX и устанавливает текстовый курсор в левый верхний угол экрана:\033\[2JЯКОРНЫЕ МЕТАСИМВОЛЫНесмотря на то, что без обычных текстовых символов в большинстве случаев нельзя получитьпрактически полезные конструкции, основное значение при проектировании регулярныхвыражений имеют метасимволы, обозначающие регулярные операции.

Вероятно, простейшимирегулярными операциями, которые поддерживает генератор LEX, являются циркумфлекс (^), идоллар ($). Эти метасимволы используются, соответственно, для обозначения начала и концастроки входного потока.Например, следующее регулярное выражение может быть использовано для поиска директивы#define препроцессора системы программирования C, которая может находиться только вначалах строк исходного текста программы:^#defineС другой стороны, следующее регулярное выражение может быть полезно для поискапоследовательности символов, в частности слова cat, которое обозначает популярную командуконкатенации OS UNIX, в конце входной строки:cat$Если необходимо распознавать входную строку, содержащую только одно слово, например, cat,можно применить следующее регулярное выражение:^cat$В некоторых случаях полезно иметь возможность идентифицировать пустые строки входногопотока.

Один из возможных способов спецификации пустой строки предоставляет следующеерегулярное выражение:^$Следует отметить, что специфика метасимволов ^ и $ заключается в том, что они совпадают сопределенной позицией текста, в частности, действенны только на концах регулярноговыражения. По этой причине метасимволы ^ и $ иногда называют якорями или якорнымиметасимволами.

Большая часть остальных метасимволов предназначена для обработки текстабез привязки к фиксированной позиции входной строки.ВЫБОР АЛЬТЕРНАТИВЕсли якорные метасимволы относительно редко встречаются в конструкциях регулярныхвыражений и поддерживаются далеко не во всех диалектах регулярных выражений, то одной изнаиболее популярных регулярных операций является операция объединения.

Это классическаярегулярная операция, которая поддерживается большинством программных продуктов,ориентированных на обработку регулярных выражений. Для ее обозначения в регулярныхвыражениях используется метасимвол вертикальной черты |, который имеет аналогичныйсмысл логического оператора ИЛИ, например, в языках программирования C, C++, C# и Java.В алгебре регулярных выражений эта регулярная операция обеспечивает выбор любой извозможных альтернатив.

Она позволяет объединить несколько регулярных фрагментов в общеерегулярное выражение, которое специфицирует возможность совпадения данных входногопотока с любой из своих компонент.Пусть,например,имеетсяследующиедварегулярныхвыражения,обозначающихуменьшительное (Bob) и полное (Robert) английские имена:BobиRobertОперация объединения позволяет связать их в одно общее регулярное выражение, котороеобеспечивает совпадение с любым из входных слов, Bob или Robert. Объединенное регулярноевыражение имеет следующий вид:Bob|RobertОно отражает семантическую эквивалентность слов Bob и Robert, которая являетсяестественной, если рассматривать их как английские имена.КЛАССЫ СИМВОЛОВКонцептуально близкой к рассмотренной конструкции объединения является еще однарегулярная операция, которая обеспечивает выбор любого символа из заданного классасимволов.

Данная операция применяется, когда необходимо задать набор символов, которыемогут находиться в определенной позиции входной строки. Для обозначения класса символовприменяются метасимволы, образующие пару квадратных скобок []. Внутри квадратныхскобок должно быть задано множество символов, любой из которых может присутствовать вданной позиции входной строки. При этом следует учитывать, что внутри квадратных скобоккласса символов большая часть метасимволов игнорируется.

Специальными являются толькотри символа: обратная дробная черта (\), дефис (-) и циркумфлекс (^). Причем метасимвол(^) имеет различный специальный смысл внутри класс символов и вне его границ.Генератор LEX поддерживает различные способы спецификации множества символов класса.Можно специфицировать перечислительный, интервальный и инвертированный классысимволов. Допустимо также комбинировать различные способы спецификации в пределаходного класса символов.Наиболее простой, но не всегда возможный и рациональный способ – перечислить допустимыесимволы класса внутри квадратных скобок.

Например, необходимо выделять во входномпотоке слова GRAY или GREY, которые почти одинаковы, но отличаются только одной буквой.Для решения этой проблемы может быть применено следующее регулярное выражение, гдеиспользуется символьный класс [EA], состоящий из букв E и A:GR[EA]YЭто регулярное выражение позволяет интерпретировать входной поток следующим образом:найти символ G, за которым следует символ R, после которого должен быть символ E либосимвол A, и все это завершается символом Y. Кажется целесообразным отметить, что в данномслучае вместо класса символов можно применить операцию объединения и построитьследующее регулярное выражение:GRAY|GREYЭто регулярное выражение также как и предыдущая конструкция с классом символовобеспечивает выбор любого из двух допустимых альтернативных вариантов входного слова:GRAY или GREY.Таким образом, оба рассмотренных регулярных выражения гарантируют аналогичнуюобработку входного потока.

Характеристики

Тип файла
PDF-файл
Размер
656,32 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее