0

Python の文字列から余分な記号を削除することに興味があります。

それを行うためのより効率的でpythonicな方法で何ができるでしょうか? 文法モジュールはありますか?

私の最初のアイデアは、よりネストされたテキストを見つけて、左と右を調べて、開始記号と終了記号を数えることです。次に、シンボルが多すぎるシンボルカウンターの最後の1つを削除します。

例はこの文字列です

text = "(This (is an example)"

最初の括弧が別の括弧と釣り合っていないことがはっきりとわかります。だから消したい。

text = "This (is and example)"

解は、括弧の位置に依存しない必要があります。

その他の例は次のとおりです。

text = "(This (is another example) )) (to) explain) the question"

それは次のようになります:

text = "(This (is another example) ) (to) explain the question"
4

1 に答える 1

0

これをフォーマットの答えに分割する必要がありました。Pythonの正規表現モジュールを確認してください。

あなたが何を求めているのか理解しているなら、を見てくださいre.sub。正規表現を使用して、削除する文字を検索し、それらを空の文字列に置き換えることができます。

'。'、'&'、および'*'のすべてのインスタンスを削除するとします。

>>> import re
>>> s = "abc&def.ghi**jkl&"
>>> re.sub('[\.\&\*]', '', s)
'abcdefghijkl'

照合するパターンが大きい場合は、それを使用re.compileしてsubの最初の引数として渡すことができます。

>>> r = re.compile('[\.\&\*]')
>>> re.sub(r, '', s)
'abcdefghijkl'

お役に立てれば。

于 2013-01-10T18:14:00.683 に答える