Извлечь текст между последним появлением фигурных скобок
У меня есть такие строки,
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