【问题标题】:How to get the position of the last match of a regex? [duplicate]如何获得正则表达式最后一场比赛的位置? [复制]
【发布时间】:2013-07-06 07:36:27
【问题描述】:

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

这是我现在得到的:

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

谁能想到一种更 Pythonic 的方式来做到这一点?

【问题讨论】:

  • 您的解决方案是那里公认的答案。
  • 是的,我对循环很有信心,我只是想知道是否有涉及re 的巧妙技巧。
  • @MartijnPieters,它似乎不是重复的,因为它们是特定于正则表达式的解决方案。
  • 我不会说那个解决方案更有效,我自己..

标签: python regex


【解决方案1】:

为什么不直接使用 findall?

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

【讨论】:

  • 整洁!完全忘记了str.rfind
猜你喜欢
  • 2021-03-29
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多