2013-05-23 2 views
1

Я пишу скрипт для проверки содержимого файлов в каталоге. До сих пор я получил список с различными строками, а также хотел бы включить традиционное регулярное выражение в поиск. Вот то, что я до сих пор:Список, содержащий строки и традиционные регулярные выражения

regex = [ "STRING1", "STRING2", "STRING3", (?:<my regex here>)] 
pattern = re.compile(regex) 

Я получаю различные ошибки и попытались проблемы съемки его немного, Предварение г»в регулярное выражение, используя .join() в функции компиляции, очевидно, я что-то не так. Код выполняется правильно, но не находит совпадений, когда это необходимо, поэтому, очевидно, мое регулярное выражение компилируется некорректно. Итак, каков правильный способ составить список регулярных выражений, которые я хочу использовать, а затем перебрать этот список в моем поиске?

+0

Возможно, вам может понадобиться присоединиться к списку, например, в этом ответе http://stackoverflow.com/a/3040797/264775 – thegrinner

+0

Привет, добро пожаловать в StackOverflow. Используйте теги и не добавляйте язык к своему названию. –

+0

Что вы хотите, чтобы ваш пример совпал? – alexis

ответ

2

Вы пытаетесь сделать что-то вроде этого ?:

import re 

# Pre-compile the patterns 
regexes = [ re.compile(p) for p in [ 'this', 
            'that', 
            ] 
      ] 
text = 'Does this text match the pattern?' 

for regex in regexes: 
    print 'Looking for "%s" in "%s" ->' % (regex.pattern, text), 

    if regex.search(text): 
     print 'found a match!' 
    else: 
     print 'no match' 

Он был взят из PyMOTW.

Смежные вопросы