2013-07-08 2 views
1

У меня есть регулярное выражение, которое соответствует номерам, и я хочу получить позицию последнего совпадающего числа.Как получить позицию последнего совпадения регулярного выражения?

Это то, что я получил прямо сейчас:

def find_last_match_pos(pattern, s): 
    match = None 
    for match in re.finditer(pattern, s): 
     pass 
    return match.start() if match else -1 

Можно ли придумать более вещий способ сделать это?

+0

Ваше решение является принятым ответом. –

+0

Да, я уверен в петле, мне просто интересно, может ли быть хитроумный трюк с участием 're'. – seriousdev

+0

@MartijnPieters, похоже, что это не дубликат, потому что это решение, характерное для регулярных выражений. – FakeRainBrigand

ответ

1

Почему бы просто не использовать findall?

s.rfind(re.findall(pattern, s)[-1]) 
+0

Neat! Полностью забыл про 'str.rfind'. – seriousdev