Python 如何获取正则表达式最后一个匹配项的位置?

Python 如何获取正则表达式最后一个匹配项的位置?,python,regex,Python,Regex,我有一个匹配数字的正则表达式,我想得到最后一个匹配数字的位置 这就是我现在得到的: def find_last_match_pos(pattern, s): match = None for match in re.finditer(pattern, s): pass return match.start() if match else -1 有人能想出一种更具Python风格的方法吗?为什么不直接使用findall呢 s.rfind(re.findal

我有一个匹配数字的正则表达式,我想得到最后一个匹配数字的位置

这就是我现在得到的:

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

有人能想出一种更具Python风格的方法吗?

为什么不直接使用findall呢

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

你的解决方案是公认的答案。是的,我对循环很有信心,我只是想知道是否有一个聪明的技巧涉及到
re
@MartijnPieters,它似乎不是重复的,因为它们是特定于正则表达式的解决方案。我不会说这个解决方案更有效,我自己..整洁!完全忘记了
str.rfind