当前位置: 首页 > 面试题库 >

使用python正则表达式查找最后一个匹配项

澹台星剑
2023-03-14
问题内容

我想匹配字符串中最后一次出现的简单模式,例如

list = re.findall(r"\w+ AAAA \w+", "foo bar AAAA foo2 AAAA bar2")
print "last match: ", list[len(list)-1]

但是,如果字符串 长,则会生成大量匹配项。有没有更直接的方法来匹配第二次出现的“ AAAA”,还是应该使用此替代方法?


问题答案:

您可以使用$表示行末字符:

>>> s = """foo bar AAAA
foo2 AAAA bar2"""
>>> re.findall(r"\w+ AAAA \w+$", s)
['foo2 AAAA bar2']

另外,请注意,这list是变量的坏名称,因为它隐藏了内置类型。要访问列表的最后一个元素,您可以使用[-1]index:

>>> lst = [2, 3, 4]
>>> lst[-1]
4


 类似资料:
  • 问题内容: 由于表示两个字符,因此应使用和‘。但是,为什么和 与正则表达式不匹配? 问题答案: 默认情况下不会产生重叠匹配。但是,此表达式可以: 这是一个前瞻性断言: 如果…下一个匹配,则匹配,但不使用任何字符串。这称为先行断言。例如, 仅在后跟时匹配。

  • 我试图使用正则表达式来检查字符串中的第一个和最后一个字符是否是a-z之间的字母字符。 我知道这与第一个字符匹配: 但是我如何检查最后一个字符呢? 这: 不起作用。我怀疑这两个条款之间应该有什么区别,但我不知道是什么!

  • 问题内容: 有没有办法查看一行是否包含与一组正则表达式模式匹配的单词?如果我有,并且想查看某行是否与其中任何一条匹配,我该怎么做?现在,我正在使用,但一次只能匹配1个正则表达式。 问题答案: 您可以使用内置函数(或如果所有正则表达式必须匹配)和生成器表达式来遍历所有正则对象。 (或者,当然,如果正则表达式不是预编译的正则表达式对象) 尽管与将正则表达式合并到单个表达式中相比,这是不够的- 如果此代

  • 问题内容: 我要匹配具有以下格式的日期: 2010-08-27、2010 / 08/27 现在,我对实际可行的日期不是很确定,只是日期格式正确。 请告知正则表达式。 谢谢 问题答案: 您可以使用模块来解析日期: 输出: 因此,捕获将告诉您日期是否匹配: 为了允许使用各种格式,您可以测试所有可能性,或者先解析字段:

  • 问题内容: 如何匹配“ Hello world”或“ Hello World”形式的句子。该句子可能包含“-/数字0-9”。任何信息对我都会非常有帮助。谢谢。 问题答案: 这将做得很好。我对句子的定义:句子以非空格开头,以句点,感叹号或问号(或字符串结尾)结尾。标点符号后可能会有一个结束语。 这是输出: 正确地匹配所有这些(最后一个句子没有结尾标点符号),看起来似乎并不那么容易!

  • 所以我想用正则表达式匹配第一个数字和最后四个数字。 我可以使用获取最后4个数字,但无法将第一个和最后四个数字合并在一起。尝试了多种组合。