この正規表現を使用して、文字列から角括弧(およびその中のすべて)のインスタンスをすべて削除しようとしています。私の文字列は、正方形の複数のセットが含まれている場合は、角括弧とその内容をすべて削除するPythonの正規表現
>>>Issachar is a rawboned donkey lying down among the sheep pens.
しかし:
import re
pattern = r'\[[^()]*\]'
s = """Issachar is a rawboned[a] donkey lying down among the sheep pens."""
t = re.sub(pattern, '', s)
print t
私は何を得ることは正しいです:文字列内の角括弧の唯一のペアがある場合たとえば、これは動作します角かっこ、それは動作しません。たとえば:
s = """Issachar is a rawboned[a] donkey lying down among the sheep pens.[b]"""
私が取得:
>>>Issachar is a rawboned
私は角括弧が文字列であるどのように多くの関係なく動作するように正規表現を必要としています。正解は次のとおりです。
>>>Issachar is a rawboned donkey lying down among the sheep pens.
私は調査して無駄に多くの順列を試しました。
正規表現は大カッコを[b] c [d] eのように連想させるのに役立ちますが、一般的に[* nested parens problem *](http ://stackoverflow.com/questions/133601/can-regular-expressions-be-used-to-match-nested-patterns#133684)。 (like:a [b [c] [d [e]]])あなたは特定の最大数のネスティングを特別にコーディングすることによって "偽造"することができます。 –