Python. Простое сравнение с шаблоном

Для проверки строки по шаблону обычно используют регулярные выражения и модуль re. Но иногда хочется что-нибудь попроще, пусть и не такое мощное — вроде like в SQL.

Сравнить строку или список с шаблоном поможет модуль fnmatch:

import fnmatch
journal = [
  "10:00 Начался обычный день в омской ветклинике",
  "10:30 Голубь Френк постучался в стеклянные двери",
  "10:50 Лисица Клер поскреблась в окно",
  "11:10 Попугай Питер проник через вентиляцию",
  "11:11 Клер попыталась сожрать Френка и Питера",
  "11:25 Осьминог Пауль всплыл в мужском туалете",
]

fnmatch.filter(journal, "*Френк*")
[ '10:30 Голубь Френк постучался в стеклянные двери',
  '11:11 Клер попыталась сожрать Френка и Питера' ]

fnmatch.fnmatch("frank", "f???k")
True

Под капотом используются регулярки, так что всегда можно конвертировать шаблон в регулярное выражение:

fnmatch.translate("*Френк*")
'(?s:.*Френк.*)\\Z'

Курлык.

★ Подписывайтесь на новые заметки.