括弧で囲まれた括弧で囲まれたテキストをすべて削除しようとしています。私は、これはのようなもののために働く正規表現Pythonの正規表現は部分文字列一致でのみ動作しますが、文字列全体では機能しません
re.sub(r'\(.*\) | \[.*\]', '', text)
を使用しています:
import re
text = 'the (quick) brown fox jumps over the [lazy] dog'
print re.sub(r'\(.*\) | \[.*\]', '', text)
> the brown fox jumps over the dog
text = '(the quick) brown fox jumps over the [lazy] dog'
print re.sub(r'\(.*\) | \[.*\]', '', text)
> brown fox jumps over the dog
しかし、文字列全体が正規表現
text = '[the quick brown fox jumps over the lazy dog]'
print re.sub(r'\(.*\) | \[.*\]', '', text)
> [the quick brown fox jumps over the lazy dog]
> # This should be '' (the empty string) #
と一致した場合に、それが失敗した場合は私が間違っているんですか?
私は欲張りのマッチングには注意します。テキスト内にランダムな ")"という単体シンボルだけがある場合、この正規表現は間にあるすべてを取り除きます。例えば、 ''これは(小さな)サンプルテキストで、a)のシンボルは ''これはシンボルです ''になります。嫌な試合を使うかもしれない? (私の答えの編集を参照してください) – gowrath
@gowrathそれは重要なメモです。私の場合、私はデータをフォーマットしたので確信していますが、一般的なケースではそれは扱わなければならないものです – marcman