Python 在最后一次出现的大括号之间提取文本

Python 在最后一次出现的大括号之间提取文本,python,string,split,partition,Python,String,Split,Partition,我有这样的弦 Protein XVZ [Human] Protein ABC [Mouse] Protein CDY [Chicken [type1]] Protein BBC [type 2] [Bacteria] 产出应该是, Human Mouse Chicken [type1] Bacteria 因此,我希望所有东西都放在最后一对牙套内。在上一个示例中,必须忽略该对前面的大括号。在Python中有没有一种有效的方法来实现这一点?提前感谢您的帮助。这个怎么样: import re li

我有这样的弦

Protein XVZ [Human]
Protein ABC [Mouse]
Protein CDY [Chicken [type1]]
Protein BBC [type 2] [Bacteria]
产出应该是,

Human
Mouse
Chicken [type1]
Bacteria
因此,我希望所有东西都放在最后一对牙套内。在上一个示例中,必须忽略该对前面的大括号。在Python中有没有一种有效的方法来实现这一点?提前感谢您的帮助。

这个怎么样:

import re
list = ["Protein XVZ [Human]","Protein ABC [Mouse]","go UDP[3] glucosamine N-acyltransferase [virus1]","Protein CDY [Chicken [type1]]","Protein BBC [type 2] [Bacteria] [cat] [mat]","gi p19-gag protein [2] [Human T-lymphotropic virus 2]"]
pattern = re.compile("\[(.*?)\]$")
for string in list:
    match = re.search(pattern,string)
    lastBracket = re.split("\].*\[",match.group(1))[-1]
    print lastBracket

这一行的最后一对大括号不是
蛋白质CDY[鸡[type1]]
[type1]
?不是。事实上,当最后一对落入另一对内时,我需要整件东西。抱歉,我不是很清楚。如果您确定始终会有三列数据,可能您可以使用
csv
module列编号可能不同。我的目标是得到最后一副牙套。非常感谢你的帮助。当我们在最后一对支架之前有另一对支架时,它仍然面临一个问题。例如,这里的gi p19 gag蛋白[2][人类T淋巴细胞嗜性病毒2]。输出应为“人类嗜T淋巴细胞病毒2”。但是当我测试
gi p19 gag蛋白[2][Human T-lymphotropic virus 2]
I得到了“Human T-lymphotropic virus 2”。你使用的是什么版本的python?所以我编辑了我的解决方案。试一试,如果有任何其他的例子给你带来麻烦,请告诉我!很高兴我能帮忙:)。这个问题无疑是一个有趣的脑筋急转弯。