Есть ли в Python способ применить список шаблонов регулярных выражений, которые хранятся в списке, к одной строке? - PullRequest
4 голосов
/ 26 января 2009

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

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

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

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

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

1 Ответ

10 голосов
/ 26 января 2009
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, поскольку оба шаблона совпадают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...