例如,我需要两个方括号之间的所有内容。File1
[Home sapiens]
[Mus musculus 1]
[virus 1 [isolated from china]]
因此考虑上述示例,我需要第一个和最后一个方括号之间的所有内容。
例如,我需要两个方括号之间的所有内容。File1
[Home sapiens]
[Mus musculus 1]
[virus 1 [isolated from china]]
因此考虑上述示例,我需要第一个和最后一个方括号之间的所有内容。
您可以使用贪婪正则表达式:
re.search(r'\[(.*)\]', your_string).group(1)
正则表达式是最灵活的选择。
如果您想尝试另一种方法,可以使用字符串的partition和rpartition方法:
>>> s = "[virus 1 [isolated from china]]"
>>> s.partition('[')[-1].rpartition(']')[0]
'virus 1 [isolated from china]'
'/test'.partition('/')[-1].rpartition('/')[0]
无法找到 "test",但是 '/test/'.partition('/')[-1].rpartition('/')[0]
可以。 - tar根据您的示例输入,似乎每行都以括号开头和结尾。在这种情况下,忘记正则表达式,这很简单:
for line in whatever:
contents = line.strip()[1:-1]
(如果您的行源保留了换行符或输入中的闭合括号后有不可见空格,我已添加strip
。如果不需要,请省略。)
Home sapiens] [Mus musculus 1] [virus 1 [isolated from china]
? - Kevinchina]
之后。您提出的结果也缺少第二、第三、第四和第五个方括号。或者您是指每行除了第一个和最后一个方括号以外的所有内容?如果是这样,您希望它返回一个字符串还是一个字符串列表?您想要["Home sapiens", "Mus musculus 1", "virus 1 [isolated from china]"]
吗? - Kevin