Главная » Просмотр файлов » Саммерфилд - Программирование на Python 3

Саммерфилд - Программирование на Python 3 (1077331), страница 121

Файл №1077331 Саммерфилд - Программирование на Python 3 (Саммерфилд - Программирование на Python 3) 121 страницаСаммерфилд - Программирование на Python 3 (1077331) страница 1212018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Вот как выглядит исправленное регулярное выражение: згсы(["'])7([""'>]+)(7(1)11). Здесь мы не используем выражение по ехр, потому что нам не требуется выявлять совпадение еще с чем-то, если открывающая кавычка отсутствует. Теперь мы готовы поместить созданное регулярное выражение в определенный контекст. Ниже приводится полное регулярное выражение, в котором используются именованные группы и комментарии: 538 Глава 12. Регулярные выражения способе использования флаги должны помещаться в начало регулярного выражения. Эта конструкция не участвует в поиске совпадений— она используется только для установки флагов. Модуль для работы с регулярными выражениями Модуль гв обеспечивает два способа работы с регулярными выражениями.

Один из них заключается в использовании функций, перечисленных в табл. 12.6, которым в виде первого аргумента передается регулярное выражение. Каждая функция преобразует регулярное выражение во внутренний формат — этот процесс называется компиляцией, а затем выполняет свою работу. Это очень удобно для однократного применения регулярного выражения, но если одно и то же регулярное выражение требуется применить несколько раз, можно избежать излишних затрат на компиляцию при каждом использовании, скомпилировав выражение всего один раз с помощью функции ге. созр11е().

После этого можно вызывать методы скомпилированного регулярного выражения столько раз, сколько потребуется. Методы скомпилированных регулярных выражений перечислены в табл. 12.6. аагсл = га.аеагса(г"а(~ОА-Ра-Г](б)1Ь", гех1) Этот фрагмент программного кода демонстрирует порядок использования функции из модуля ге. Данному регулярному выражению соответствует определение цвета в формате НТМ1 (например, ФСОСОАВ). Если совпадение будет найдено, функция ге. аеа гол() вернет объект совпадения; в противном случае она вернет значение йолв. Методы объектов совпадений перечислены в табл. 12.7.

Если предполагается несколько раз использовать одно и то же регулярное выражение, его можно скомпилировать один раз и использовать скомпилированное регулярное выражение везде, где только потребуется: со1ог ге = га соар11а(г"а(1сА-еа-г](б)1ь") загса = со1ог га.ааагсь(сехс) Как уже отмечалось выше, мы используем «сырые» строки, чтобы избежать необходимости дублировать символы обратного олеша.

Это регулярное выражение можно записать иначе, использовав в нем символьный класс ('о)А-Е] и передав флаг ге.101»ОВЕСАЯЕ функции ге.созр11е() ввиде последнего аргумента, или использовать регулярное выражение (71)З('1ЬА-Р](6)1Ь, которое начинается с установки флага, делающего регулярное выражение нечувствительным к регистру символов. Если требуется установить более одного флага, их можно объединять с помощью оператора ИЛИ (~) — например, ге. МОЕТ1Е11(Е~ ге.ООТАЕЕ, или (7аа) - в случае встраивания флагов в само регулярное выражение. Модуль дпя работы с регулярными выражениями 539 Таблица ьл.д.

Функции модуля регулярных еььражений Описание Синтаксис ге.совр!1е( г, г) Возвращает скомпилированное регулярное выражение г с установленными флагами Г, если они были заданы Возвращает строку в, в которой все неалфавитно-цифровые символы экранированы символом обратного олеша, то есть возвращает строку, не содержащую специальных символов регулярных выражений ге.евсвре(в) Возвращает все неперекрывающиеся совпадения с регулярным выражением г в строке в (с учетом флагов Г, если они заданы). Если регулярное выражение содержит сохраняющие группы, для каждого совпадения возвращается кортеж с сохраненными фрагментами ге.т1пев11( г, в, г) Возвращает объект совпадения для каждого неперекрываю- щегося совпадения с регулярным выражением г в строке в (с учетом флагов Г, если они заданы) ге.т)пе)тег( г, 5, г) Возвращает объект совпадения, если совпадение с регуляр- ным выражением г находится в начале строки в (с учетом флагов Г, если они заданы); в противном случае возвращает Мове ге.ввтсп( г,в, г) Возвращает объект совпадения, если совпадение с регуляр- ным выражением г обнаруживается в любом месте строки в (с учетом флагов Г, если они заданы); в противном случае возвращает Мопе ге.везгсп( г,в, г) ге.

вр1ьт( г, в, в) Возвращает копию строки в, в которой каждое (но не более з, если задано) совпадение с регулярным выражением г за- мещается значением аргумента х, который может быть строкой или функцией — описание приводится в тексте ге впв( г, х, в, в) То же самое, что и функция ге, врв(), за исключением того, что она возвращает кортеж из двух злементов — со строкой результата и количеством выполненных подстановок ге.впво( г, х, в, я) Возвращает список строк, который создается в результате разбиения строки в по каждому совпадению с регулярным выражением г. Количество разбиений не превышает и (если аргумент я не задан, выполняется столько разбиений, сколько возможно).

Если регулярное выражение содержит сохраняющие группы, они включаются в список между частями, полученными в результате разбиения 540 Глава 12. Регулярные выражения Таблица 1л.д. Методы объекта регулярного выражения Синтаксис Описание Возвращает все неперекрывающиеся совпадения с регулярным выражением в строке я (или в срезе вгагг; епа строки). Если регулярное выражение содержит сохраняющие группы, для каждого совпадения возвращается кортеж с сохраненными фрагментами гх. Гшса11 (я, вгагг, епп) гх.ггпз1(ег (в, вгагг, епа) Возвращает флаги, которые были установлены при компи- ляции регулярного выражения гх.

(1адв Словарь, ключамн которого являются имена сохраняющих групп, а значениями — номера групп. Пустой, если имена не используются гх.дгопр1ппех Возвращает объект совпадения, если совпадение с регулярным выражением находится в начале строки в (или в начале среза вгаггг ела строки); в противном случае возвращает Иопе гх.авгсП (в, вгагг, епо) Строка, из которой была получена скомпилированная вер- сия регулярного выражения гх.рамегп Возвращает объект совпадения, если совпадение с регуляр- ным выражением обнаруживается в любом месте строки в (или в любом месте в срезе вгагг. епо строки); в противном случае возвращает Иоле гх.веагсп (я, ягагг, епо) Возвращает список строк, который создается в результате разбиения строки в по каждому совпадению с регулярным выражением. Количество разбиений не превышает а (если аргумент а не задан, выполняется столько разбиений, сколько возможно).

Если регулярное выражение содержит сохраняющие группы, они включаются в список между частями, полученными в результате разбиения гх.вр!ы(в, а) Возвращает копию строки в, в которой каждое (ио не более а, если задано) совпадение с регулярным выражением заме- щается значением аргумента х, который может быть стро- кой или функцией, — описание приводится в тексте гх.впв(х, в, а) То же самое, что и метод гх. ярз( ), за исключением того, что этот метод возвращает кортеж из двух элементов — со стра. кой результата и количеством выполненных подстановок гх.впзп(х, в, а) Возвращает объект совпадения для каждого неперекры- вающегося совпадения в строке в (или в срезе вгагг:епа строки) Модуль для работы с регулярными выражениями 541 Таблица 12.7. Методы и атрибуты объекта совпадения Описание Синтаксис а.епс(д) Возвращает конечную позицию совпадения в тексте для группы д, если таковая указана (или для группы О, соответ- ствующей совпадению со всем регулярным выражением); если группа не участвовала в совпадении, возвращается -1 Позиция конца поиска (конец текста или значение аргумен- та епа в методах или функциях засол() или зеа гол()) а.епсроэ Возвращает строку з, в которой номера и имена сохраняю- щих групп (11, >,2, 'со<паве> и подобные им) замещаются соот- ветствующими сохраненными фрагментами а.ехрзпс(з) Возвращает фрагмент, сохраненный в нумерованной или именованной группе д; если указано более одной группы, возвращается кортеж соответствующих сохраненных фрагментов (совпадеиию со всем регулярным выражением соответствует группа О) а.дгоор(д, ) Возвращает словарь имен всех именованных сохраняющих групп, в котором ключами являются имена групп, а значениями — сохраненные фрагменты; если указан аргумент аеГао) с, его значение возвращается для групп, не участвовавших в совпадении а.дгсорсссС( аегао1 С) Возвращает кортеж всех сохраняющих групп, начиная с 1; если указан аргумент аесап1С, его значение возвращается для групп, не участвовавших в совпадении а.дгоорв( аесаи1С) Имя сохраняющей группы с наибольшим порядковым номером, для которой имеется совпадение, или Моле, если таких групп нет илн если именованные группы не использовались а.

1ззсдгоор а. 1азсспсех Начальная позиция поиска (начало текста или значение аргумента згагс в методах или функциях аасся() или эеагсл()) а. ров Объект регулярного выражения, который воспроизвел этот объект совпадения а. ге а.зрап(д) Возвращает начальную и конечную позиции совпадения в тексте для группы д, если таковая указана (или для группы О, соответствующей совпадению со всем регулярным выражением); если группа не участвовала в совпадении, возвращается (-1, -1) Возвращает начальную позицию совпадения в тексте для группы д, если таковая указана (или для группы О, соответ- ствующей совпадению со всем регулярным выражением); если группа не участвовала в совпадении, возвращается -1 а.зсагс(д) Строка, которая была передана функциям или методам азссл() или зеагся() а.

Бсгспд Номер последней сохраняющей группы, для котоРой имеет- ся совпадение, или Моле, если таких групп нет 542 Глава 12. Регулярные выражения Мы завершим этот раздел обзором нескольких примеров и начнем с тех регулярных выражений, которые демонстрировались в предыдущих разделах, чтобы проиллюстрировать применение наиболее часто используемых функций из модуля ге.

Начнем с регулярного выражения, отыскивающего повторяющиеся слова: почЬ1е иогс ге = ге.совр!1е(г"<,Ь(дР<иоге>1и»)тв»(ЗР=иргс)(»~1и)", ге. 1ОИОНЕСАЗЕ) гог загса 1л почь1е иогп ге.г!лп!тег(теж): рг!пт("(01 та пир1тсатеп".го<за!(ватсп.дголр("иогп"))) Здесь используется немного более сложная версия по сравнению с той, что мы видели выше. Регулярное выражение начинается с границы слова (чтобы гарантировать, что совпадение будет начинаться с начала слова), затем следует максимально длинное соответствие одному или более символам «слова», затем следует один или более пробельных символов, затем следует то же самое слово еще раз, но при условии, что за вторым вхождением слова не следует какой-либо символ «слова». Если предположить, что поиск выполняется в тексте «ч«1и ш ча)п», то без первой проверки было бы получено одно соответствие и два сохранения: и1п 1п ча1п.

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

Тип файла
DJVU-файл
Размер
6,88 Mb
Тип материала
Высшее учебное заведение

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

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