たとえば、2つの角括弧の間にすべてが必要です。 File1
[Home sapiens]
[Mus musculus 1]
[virus 1 [isolated from china]]
したがって、上記の例を考慮すると、最初と最後の角括弧の間にすべてが必要です。
正規表現は最も柔軟なオプションです。
別のアプローチとして、文字列の partition および rpartition メソッドを試すことができます。
>>> s = "[virus 1 [isolated from china]]"
>>> s.partition('[')[-1].rpartition(']')[0]
'virus 1 [isolated from china]'
貪欲な正規表現を使用できます。
re.search(r'\[(.*)\]', your_string).group(1)
サンプル入力を考えると、すべての行が角かっこで始まり、括弧で終わるように見えます。その場合、正規表現を忘れてください。これは簡単です。
for line in whatever:
contents = line.strip()[1:-1]
(行ソースが改行を残している場合、または入力の閉じ括弧の後に非表示のスペースがある場合に備えて、strip
を追加しました。不要な場合は省略してください。)