2014-09-30 2 views
1

Можете ли вы предложить более хороший способ, чтобы написать следующее:Переключение на регулярное выражение соответствует

for r in replacements: 

    m = pattern_1.match(r) 
    if m: 
     a.append((r,m.group(1),m.group(2),m.group(3))) 
     continue 

    m = pattern_2.match(r) 
    if m: 
     b.append((r,m.group(1),m.group(2),m.group(3))) 
     continue 

    if "import" in r: 
     c.append(r) 
    else: 
     d.append(r) 

Я попытался "if pattern_1.match(r) as m:", но получил неверную ошибку синтаксиса. Это функция будущего? Я использую 2.6.

ответ

2
for r in replacements: 
    for pattern, dest in zip([pattern_1, pattern_2], [a, b]): 
    m = pattern.match(r) 
    if m: 
     dest.append((r,m.group(1),m.group(2),m.group(3))) 
     break 
    else: 
    (c if "import" in r else d).append(r) 
Смежные вопросы