Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 350

Cows numerous as a swarm of bees,

Or as the leaves upon the trees,

It did require to make thee please,

And stand unrivalled, queen of cheese.

May you not receive a scar as

We have heard that Mr. Harris

Intends to send you off as far as

The great world's show at Paris.

Of the youth beware of these,

For some of them might rudely squeeze

And bite your cheek, then songs or glees

We could not sing, oh! queen of cheese.

We'rt thou suspended from balloon,

You'd cast a shade even at noon,

Folks would think it was the moon

About to fall and crush them soon.

... '''

8. Импортируйте модуль re, чтобы использовать функции регулярных выражений

в Python. Используйте функцию re.findall(), чтобы вывести на экран все сло-

ва, которые начинаются с буквы «с».

Мы определим переменную pat для шаблона и затем будем искать такой шаблон

в строке mammoth:

>>> import re

>>> re = r'\bc\w*'

Глава 7. Работаем с данными профессионально

455

>>> re.findall(pat, mammoth)

['cheese', 'city', 'cheese', 'cheek', 'could', 'cheese', 'cast', 'crush']

\b означает, что нужно начать с границы между словом и не словом. Используй-

те такую конструкцию, чтобы указать либо на начало, либо на конец слова.

Литерал c — это первая буква всех слов, которые мы ищем. \w означает любой

символ слова, которое включает в себя буквы, цифры и подчеркивания (_).

* означает ноль или больше таких символов. Целиком это выражение находит

слова, которые начинаются с «с», включая слово с. Если вы не использовали

простую строку (у таких строк r стоит прямо перед открывающей кавычкой),

Python интерпретирует \b как возврат на шаг и поиск по таинственной причине

ничего не найдет:

>>> pat = '\bc\w*'

>>> re.findall(pat, mammoth)

[]

9. Найдите все четырехбуквенные слова, которые начинаются с буквы «c»:

>>> pat = r'\bc\w{3}\b'

>>> re.findall(pat, mammoth)

['city', 'cast']

Вам нужен последний символ \b, чтобы указать на конец слова. В противном

случае вы получите первые четыре буквы всех слов, которые начинаются с «с»

и имеют как минимум четыре буквы:

>>> pat = r'\bc\w{3}'

>>> re.findall(pat, mammoth)

['chee', 'city', 'chee', 'chee', 'coul', 'chee', 'cast', 'crus']