Много паттернов и одна строка
Приветствую,
Есть много regex шаблонов и одна строка. Ищу разумный способ определить, какой из шаблонов совпадает со строкой.
В данный момент прогоняю строку по циклу из шаблонов и проверяю, совпадает ли она со шаблоном.
import re
patterns = [ (re.compile("^/upload/test/$"), "upload"),
(re.compile("^/download/test/$"), "download"),
(re.compile("^/test/$"), "test")]
string = "/test/"
for pattern in patterns:
if pattern[0].match(string):
print pattern[1]
Есть ли способ лучше?
Источник: Stack Overflow на русском