Основы программирования на языке Python : учебное пособие


 Синтаксис регулярного выражения



Download 1,45 Mb.
Pdf ko'rish
bet36/44
Sana24.02.2022
Hajmi1,45 Mb.
#186836
TuriУчебное пособие
1   ...   32   33   34   35   36   37   38   39   ...   44
Bog'liq
978-5-7996-1198-9 2014

22.11. Синтаксис регулярного выражения 
Синтаксис регулярных выражений в Python почти такой же, как 
в других инструментах. Часть символов (в основном буквы и цифры) 
обозначают сами себя. Строка удовлетворяет (соответствует) шабло-
ну, если она входит во множество строк, которые этот шаблон опи-
сывает. Различные операции используют шаблон по-разному. Так, 


73 
search() ищет первое вхождение строки, удовлетворяющей шаблону, 
в заданной строке, a match() требует, чтобы строка удовлетворяла 
шаблону с самого начала. Символы, имеющие специальное значение 
в записи регулярных выражений, приведены ниже. 
Символ Обозначение в регулярном выражении 
"." 
Любой символ 
"^
Начало строки 
"$" 
Конец строки 
"*" 
Повторение фрагмента нуль или более раз («жадное») 
"+" 
Повторение фрагмента один или более раз («жадное») 
"?" 
Предыдущий фрагмент либо присутствует, либо отсут-
ствует 
"{m, n}" Повторение предыдущего фрагмента от m до n раз 
включительно («жадное») 
"[...]" 
Любой символ из набора в скобках. Можно задавать 
диапазоны символов с идущими подряд кодами, напри-
мер: a-z 
"[^... ]" 
Любой символ не из набора в скобках 
"\" 
Обратная косая черта отменяет специальное значение 
следующего за ней символа 
"I" 
Фрагмент справа или фрагмент слева 
"* ?" 
Повторение фрагмента нуль или более раз («нежадное») 
"+ ?" 
Повторение фрагмента один или более раз («нежадное») 
"{m, n} ?" Повторение предыдущего фрагмента от m до n раз 
включительно («нежадное») 
Если А и В – регулярные выражения, то их конкатенация АВ яв-
ляется новым регулярным выражением, причем конкатенация строк а 
и b будет удовлетворять АВ, если а удовлетворяет А и b удовлетворя-
ет В. Можно считать, что конкатенация – основной способ составле-
ния регулярных выражений. 
Скобки, описанные ниже, применяются для задания приорите-
тов и выделения групп (фрагментов текста, которые потом можно по-
лучить по номеру или из словаря и даже сослаться в том же регуляр-
ном выражении). 


74 
Алгоритм, который сопоставляет строки с регулярным выраже-
нием, проверяет соответствие того или иного фрагмента строки регу-
лярному выражению.
Например, строка "а" соответствует регулярному выражению 
"[a-z]",строка "fruit" соответствует "fruitIvegetable", а вот строка "ap-
ple" не соответствует шаблону "pineapple". 
В таблице вместо регвыр может быть записано регулярное выра-
жение, вместо имя – идентификатор, а флаги будут рассмотрены ниже. 
Обозначение 
Описание 


" (регвыр)" 
Обособляет регулярное выражение в скобках и 
выделяет группу 
" (? •.регвыр)" 
Обособляет регулярное выражение в скобках 
без выделения группы 
" (?=регвыр)" 
Просмотр вперед: строка должна соответство-
вать заданному регулярному выражению, но 
дальнейшее сопоставление с шаблоном начнет-
ся с того же места 
" (? !регвыр) " 
То же, но с отрицанием соответствия 
" (?<=регвыр)" 
Просмотр назад: строка должна соответствовать 
регулярному выражению. Не занимает места в 
строке, к которой применяется шаблон. Пара-
метр регвыр должен быть фиксированной дли-
ны (то есть без "+" и "*") 
" (?
То же, но с отрицанием соответствия 
"(?р<имя>регвыр)" Выделяет именованную группу с именем <имя> 
" (?Р=имя)" 
Точно соответствует выделенной ранее имено-
ванной группе с именем <имя> 
" (?#регвыр)" 
Комментарий (игнорируется) 
"(?(имя)рв1|рв2)" 
Если группа с номером или именем <имя> ока-
залась определена, то результатом будет сопо-
ставление с рв1иначе – с рв2Часть рв2 может 
отсутствовать 


75 
Окончание таблицы 


" (? флаг)" 
Задает флаг для всего данного регулярного вы-
ражения. Флаги необходимо задавать в начале 
шаблона 
В таблице описаны специальные последовательности, в которых 
используется обратная косая черта. 
Последовательность 
Значение 


"\1" – "\9" 
Группа с указанным номером группы ну-
меруется начиная с 1 
" \А" 
Промежуток перед началом всей строки 
(почти аналогично "^") 
" \Z" 
Промежуток перед концом всей строки 
(почти аналогично " $") 
" \b" 
Промежуток между символами перед сло-
вом или после него 
" \В" 
Наоборот, не соответствует промежутку 
между символами на границе слова 
" \d" 
Цифра (аналогично "[ 0 – 9 ]") 
" \D" 
Не цифра (аналогично "[" 0 – 9 ]") 
" \s" 
Любой пробельный символ (аналогично 
"[\t\n\r\f\v]") 
" \S" 
Любой непробельный символ (аналогично 
"[^t\n\r\f\v]") 
"\w" 
Любая цифра или буква (зависит от флага 
LOCALE) 
"\W" 
Любой символ, не являющийся цифрой или 
буквой (зависит от флага LOCALE) 


76 
Флаги, используемые с регулярными выражениями: 
Обозначение 
Описание 
"(?i)", re.I, 
re.IGNORECASE 
Сопоставление проводится без учета регистра 
букв 
"(?L)", re.L, 
re.LOCALE 
Влияет на определение буквы в "\w", "\w", "\b", 
"\B" в зависимости от текущей культурной сре-
ды (locale) 
"(?m)", re.M, 
re.MULTILINE 
Если этот флаг задан, то "^" и " $" соответствуют 
началу и концу любой строки 
"(?s)", re.S, 
re.DOTALL 
Если задан, то "." соответствует также и символу 
конца строки " \n" 
"(?x)", re.X, 
re.VERBOSE 
Если задан, то пробельные символы, не экрани-
рованные в шаблоне обратной косой чертой, яв-
ляются незначащими, а все, что расположено 
после символа "#", – комментариями. Позволяет 
записывать регулярное выражение в несколько 
строк для улучшения его читаемости и записи 
комментариев 
"(?u)", re.U, 
re.UNICODE 
В шаблоне и в строке использован Unicode 

Download 1,45 Mb.

Do'stlaringiz bilan baham:
1   ...   32   33   34   35   36   37   38   39   ...   44




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish