Python эквивалентно "совпадению строк" в Tcl - PullRequest
0 голосов
/ 17 сентября 2018

Я ищу Python, эквивалентный операции совпадения строк Tcl . В частности, я хотел бы правильно обрабатывать специальные последовательности (*,? И [chars]).

Например, для трех строк Python:

expected = 'Foo? Bar* Tar'
actual1 = 'Foo2 Barfluff Tar'
actual2 = 'Foo Bar Tar'

операция сопоставления match(expected,actual1) должна возвращать true, но match(expected,actual2) должна возвращать false.

Большое спасибо!

1 Ответ

0 голосов
/ 17 сентября 2018

Вы хотите модуль fnmatch .В то время как re предоставляет полнофункциональные регулярные выражения, fnmatch выполняет ограниченное сопоставление с подстановочными знаками в стиле оболочки, которое вы ищете.

Для сопоставления с учетом регистра это просто:

>>> fnmatch.fnmatchcase(actual1, expected)
True
>>> fnmatch.fnmatchcase(actual2, expected)
False

Если вы хотите следовать правилам чувствительности к регистру операционной системы (то есть нечувствительным к Windows, чувствительным к большинству других операционных систем), вы должны использовать обычный fnmatch.fnmatch для вызова автоматической нормализации регистра.

...