Есть ли способ в python применить список шаблонов регулярных выражений, которые хранятся в списке, в одну строку?

У меня есть список шаблонов регулярных выражений (хранимых в типе списка), которые я хотел бы применить к строке.

Кто-нибудь знает хороший способ:

  1. Примените каждый шаблон регулярного выражения в списке к строке и
  2. Вызов другой функции, связанной с этим шаблоном в списке, если он соответствует.

Я хотел бы сделать это в python, если возможно

заранее спасибо.

import re def func1(s): print s, "is a nice string" def func2(s): print s, "is a bad string" funcs = { r".*pat1.*": func1, r".*pat2.*": func2 } s = "Some string with both pat1 and pat2" for pat, func in funcs.items(): if re.search(pat, s): func(s) 

Вышеупомянутый код вызовет обе функции для строки s поскольку оба шаблона сопоставлены.