все Python 3fnmatchфункция
fnmatch.translate()
шаблоны имён файлов
Переводит шаблон оболочки в строку регулярного выражения, которую можно скомпилировать через re.compile().
Синтаксис
regex = fnmatch.translate(pat)
Результат совпадает со всей строкой целиком и рассчитан на re.match(); с re.search() так не выйдет: выражение закреплено только в конце, а не в начале, поэтому search найдёт совпадение и в хвосте строки. Точный текст выражения меняется между версиями (в 3.14 \Z заменён на \z), поэтому сравнивать его со строкой в тестах нельзя — проверяйте поведение. В отличие от glob.translate(), про '/' и скрытые файлы ничего не знает.
Примеры
import fnmatch, re
rx = re.compile(fnmatch.translate('*.py'))
print(bool(rx.match('main.py')), bool(rx.match('main.pyc'))) # → True False
print(fnmatch.translate('*.py')) # → ? (?s:.*\.py)\z на 3.14+, \Z раньше
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности