11

たとえば、2つの角かっこで囲まれたすべてのものが必要です。File1

[Home sapiens]
[Mus musculus 1]
[virus 1 [isolated from china]]

したがって、上記の例を考慮すると、最初と最後の角括弧の間にすべてが必要です。

4

3 に答える 3

20

貪欲な正規表現を使用できます。

re.search(r'\[(.*)\]', your_string).group(1)
于 2013-02-05T20:32:44.113 に答える
19

正規表現は最も柔軟なオプションです。

別のアプローチとして、文字列のpartitionメソッドとrpartitionメソッドを試すことができます。

>>> s = "[virus 1 [isolated from china]]"
>>> s.partition('[')[-1].rpartition(']')[0]
'virus 1 [isolated from china]'
于 2013-02-05T20:42:05.380 に答える
2

サンプル入力を考えると、すべての行が角かっこで始まり、角かっこで終わっているように見えます。その場合、正規表現を忘れてください、これは些細なことです:

for line in whatever:
    contents = line.strip()[1:-1]

strip(行ソースが改行を残している場合、または入力の閉じ括弧の後に非表示のスペースがある場合に備えて追加しました。不要な場合は省略してください。)

于 2013-02-05T22:39:30.497 に答える