- en
- Language: ru
- Documentation version: latest
Наборы символов
В Python есть специальные обозначения для наборов символов:
\d
- любая цифра\D
- любое нечисловое значение\s
- пробельные символы\S
- все, кроме пробельные символы\w
- любая буква, цифра или нижнее подчеркивание\W
- все, кроме букв, цифр или нижнего подчеркивания
Примечание
Это не все наборы символов, которые поддерживает Python. Подробнее смотрите в документации.
Наборы символов позволяют писать более короткие выражения без необходимости перечислять все нужные символы.
Например, получим время из строки лог-файла:
In [1]: log = '*Jul 7 06:15:18.695: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/3, changed state to down'
In [2]: re.search('\d\d:\d\d:\d\d', log).group()
Out[2]: '06:15:18'
Выражение \d\d:\d\d:\d\d
описывает 3 пары чисел, разделенных
двоеточиями.
Получение MAC-адреса из лог-сообщения:
In [3]: log2 = 'Jun 3 14:39:05.941: %SW_MATM-4-MACFLAP_NOTIF: Host f03a.b216.7ad7 in vlan 10 is flapping between port Gi0/5 and port Gi0/15'
In [4]: re.search('\w\w\w\w\.\w\w\w\w\.\w\w\w\w', log2).group()
Out[4]: 'f03a.b216.7ad7'
Выражение \w\w\w\w\.\w\w\w\w\.\w\w\w\w
описывает 12 букв или цифр,
которые разделены на три группы по четыре символа точками.
Группы символов очень удобны, но пока что приходится вручную указывать повторение символа. В следующем подразделе рассматриваются символы повторения, которые упростят описание выражений.