Python,正则表达式,括号内的字符串[]

eud*_*nia -2 python regex string bioinformatics

在以下行中:(bla - 表示不重要)

> blabla|blabla|bla|blabla| blabla [Geobacter sp. M21]
> blabla|blabla|bla|blabla| blabla [Acetobacter pasteurianus IFO 3283-07]
> blabla|blabla|bla|blabla| blabla [Gardnerella vaginalis ATCC 14019]
> blabla|blabla|bla|blabla| blabla [Granulibacter bethesdensis CGDNIH1]
Run Code Online (Sandbox Code Playgroud)

我试图将括号[]中的所有信息作为:

Geobacter sp. M21
Acetobacter pasteurianus IFO 3283-07
Gardnerella vaginalis ATCC 14019
Granulibacter bethesdensis CGDNIH1
Run Code Online (Sandbox Code Playgroud)

我的代码在这里当然不起作用 - 在[]中有时候是3,有时是4个"alfanumeric words",还有像"."或" - "这样的字符:

import re
#code...
pattern = r'[ \w+ \w+ \w+ ]'
for i in lines_:
    m = re.search ( pattern, str(i) )
    print m.group()
Run Code Online (Sandbox Code Playgroud)

这样可以使用正则表达式获取这些信息吗?

Ash*_*ary 7

这里不需要正则表达式:

>>> s = '''> blabla|blabla|bla|blabla| blabla [Geobacter sp. M21]
... > blabla|blabla|bla|blabla| blabla [Acetobacter pasteurianus IFO 3283-07]
... > blabla|blabla|bla|blabla| blabla [Gardnerella vaginalis ATCC 14019]
... > blabla|blabla|bla|blabla| blabla [Granulibacter bethesdensis CGDNIH1]'''
>>> for x in s.splitlines():
...     print x.rsplit('[')[-1].rstrip(']')
...     
Geobacter sp. M21
Acetobacter pasteurianus IFO 3283-07
Gardnerella vaginalis ATCC 14019
Granulibacter bethesdensis CGDNIH1
Run Code Online (Sandbox Code Playgroud)