search

Home  >  Q&A  >  body text

python的正则表达式匹配如何找到所有匹配成功的部分(包括重叠的)

我们知道re.findall()可以匹配所有不重叠的匹配成功的部分,那如何进行可重叠的匹配呢?求大神不吝赐教。

举一个例子

假设text = "acbca"pattern = "(a.*b)|(b.*a)"
使用re.findall(pattern, text)
结果是这样的: [("acb", "")]
"bca"这一个片段并不会被找到。问题就是,如何让"acb""bca"两个片段都能被匹配上呢?

阿神阿神2804 days ago848

reply all(1)I'll reply

  • ringa_lee

    ringa_lee2017-04-17 17:57:16

    key = "gost.default.api.access.user.kicktype.limitusers.count@"
    p1 = ".((api).access)."
    pattern1 = re.compile(p1)
    matcher1 = re .search(pattern1,key)
    matcher1.group(0)
    matcher1.group(1)
    matcher1.group(2)
    Use () to save the capture group

    reply
    0
  • Cancelreply