Извлечь текст между последним появлением фигурных скобок

У меня есть такие строки,

Protein XVZ [Human]
Protein ABC [Mouse]
Protein CDY [Chicken [type1]]
Protein BBC [type 2] [Bacteria]

Выход должен быть,

Human
Mouse
Chicken [type1]
Bacteria

Таким образом, я хочу все внутри последней пары скобок. Скобки, которые предшествуют этой паре, должны игнорироваться, как в последнем примере. Есть ли эффективный способ сделать это в Python? Заранее спасибо за помощь.

1 ответ

Решение

Как насчет этого:

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
Другие вопросы по тегам