Python Glossary English

все 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Сообщить о неточности