python:regex只获取最后一次出现

ZiT*_*TAL 5 python regex

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

text = "aaaa[ab][cd][ef]"

a = re.compile("^(\w+)(\[\w+\])*$").findall(text)

print a
Run Code Online (Sandbox Code Playgroud)

我需要所有这些,但它返回:

[('aaaa', '[ef]')]
Run Code Online (Sandbox Code Playgroud)

有:

a = re.compile("\[\w+\]").findall(text)
Run Code Online (Sandbox Code Playgroud)

我得到了所有这些,但第一个字出来......

['[ab]', '[cd]', '[ef]']
Run Code Online (Sandbox Code Playgroud)

这个文本是随机文本我把这个因为stackoverflow标准质量

ZiT*_*TAL 0

最后我用这段代码做到了:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

text = "aaaa[ab][cd][ef]"

var = []
if re.match("^(\w+)(\[\w+\])*$", text):
        a = re.findall("^\w+", text)[0]
        var.append(a)
        b = re.findall("\[\w+\]", text)
        for i in b:
                var.append(i)
print var
Run Code Online (Sandbox Code Playgroud)

输出:

['aaaa', '[ab]', '[cd]', '[ef]']
Run Code Online (Sandbox Code Playgroud)

所有这些解决方案都很棒,谢谢:)