例如,我需要两个方括号之间的所有内容。 文件1
[Home sapiens]
[Mus musculus 1]
[virus 1 [isolated from china]]
因此,考虑到上面的例子,我需要在第一个和最后一个方括号之间的所有内容。
答案 0 :(得分:19)
正则表达式是最灵活的选择。
对于其他方法,您可以尝试字符串的partition和rpartition方法:
>>> s = "[virus 1 [isolated from china]]"
>>> s.partition('[')[-1].rpartition(']')[0]
'virus 1 [isolated from china]'
答案 1 :(得分:18)
你可以使用贪婪的正则表达式:
re.search(r'\[(.*)\]', your_string).group(1)
答案 2 :(得分:2)
根据您的示例输入,看起来每条线都以括号开头和结尾。在这种情况下,忘记正则表达式,这是微不足道的:
for line in whatever:
contents = line.strip()[1:-1]
(我添加了strip
以防你的线源离开换行符,或者输入中的右括号后面有不可见的空格。如果没有必要,请将其保留。)