1

私は Python を学んでおり、IMAP から受信した "From" フィールドをフォーマットする必要があります。str.find()andを使って試してみましたstr.strip()。また、正規表現も使ってみました。find() などを使用すると、関数は re を使用するよりもかなり高速に実行されます (タイミングを計りました)。では、いつre を使うの良いのでしょうか? それに関連する良いリンク/記事はありますか? Pythonのドキュメントは明らかにそれについて言及していません...

4

2 に答える 2

10

find正規表現はパターンに一致しますが、文字の正確なシーケンスにのみ一致します。当然、正確なシーケンスを探すだけの方が高速です(正規表現パターンも正確なシーケンスであっても、オーバーヘッドが発生します)。

上記の結果として、find正確なシーケンスを知っている場合は使用する必要があり、知らない場合は正規表現(または他の何か)を使用する必要があります。使用する必要がある正確なアプローチは、実際に直面する問題の複雑さに依存します。

ちなみに、pythonreモジュールは、compile繰り返し使用する場合に正規表現をプリコンパイルできるメソッドを提供します。同じパターンを何度も使用している場合、これにより速度が大幅に向上します。

于 2012-09-20T13:16:53.330 に答える
3

複雑なことをする場合は、を使用する必要がありますre。文字列メソッドを使用するよりもスケーラブルです。

文字列メソッドは、単純なことを行うのに適していて、正規表現に煩わされる価値はありません。

したがって、何をしているかによって異なりますが、正規表現の方が強力なので、通常は正規表現を使用する必要があります。

于 2012-09-20T13:17:16.143 に答える