Таблица 7.3. Специальные символы
Шаблон Совпадения
\d
Цифровой символ
\D
Нецифровой символ
\w
Буквенный или цифровой символ или знак подчеркивания
\W
Любой символ, кроме буквенного или цифрового символа или знака подчеркивания
\s
Пробельный символ
\S
Непробельный символ
\b
Граница слова
\B
Не граница слова
196
Глава 7. Работаем с данными профессионально
Модуль Python string содержит заранее определенные строковые константы,
которые мы можем использовать для тестирования. Мы воспользуемся константой
printable, которая содержит 100 печатаемых символов ASCII, включая буквы
в обоих регистрах, цифры, пробелы и знаки пунктуации:
>>> import string
>>> printable = string.printable
>>> len(printable)
100
>>> printable[0:50]
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN'
>>> printable[50:]
'OPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
Какие символы строки printable являются цифрами?
>>> re.findall('\d', printable)
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
Какие символы являются цифрами, буквами и нижним подчеркиванием?
>>> re.findall('\w', printable)
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b',
'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
'Y', 'Z', '_']
Какие символы являются пробелами?
>>> re.findall('\s', printable)
[' ', '\t', '\n', '\r', '\x0b', '\x0c']
Регулярные выражения не ограничиваются символами ASCII. Шаблон \d совпадет
со всем, что в кодировке Unicode считается цифрой, а не только с символами ASCII
от 0 до 9. Добавим две буквы в нижнем регистре не из ASCII из FileFormat.info.