あなたは、生のスピードを探しているなら、これら二つのどちらも非常に良い選択でしょう。実行速度のために、Perlを選択します。 PythonやPerlのどちらでも簡単にコードを書くことができるので、Objective Cで書くことができます。どちらも簡単にJavaソリューションを打ち破ることができます。コード化に要する時間が短い高水準言語は、測定しているすべてがソリューションの開発に比べてより多くのコード行を必要とするソリューションに比べて常に勝利を収めます。
実際の実行時のパフォーマンスになる限り、Perlの正規表現は非常に厳密にコード化されたCで書かれており、利用可能な最も高速で柔軟な正規表現として知られています。正規表現オプティマイザは、コンパイルされた正規表現プログラムに対して、Aho-Corasickの開始点最適化を適用して、O(1)時に実行する代替トライの開始点を見つけるなど、非常に巧妙なことをたくさん行います。誰もそれをしません。ヘック、私は他の誰も思っていませんが、PerlはO(n)からO(1)にあなたを連れて行くものです。コンパイラはスマートな何かをしてインタープリタはるかに速く走る。 Perlの正規表現はまた、デバッグとプロファイリングの大幅な改善をもたらします。 Pythonのものよりも柔軟性がありますが、デバッグだけでバランスをとることができます。
パフォーマンス上の唯一の例外は、Perlの、Javaの、Pythonのいずれの再帰的なバックトラッカーで実行したときに縮退する特定の病理パターンです。これらの問題は、Russ Coxによって書かれた、非常に推奨されているRE2
ライブラリを置換プラグインとして使用することで対処できます。私はを知っていますそれはPerlのための透明な置換の正規表現エンジンとして利用可能であり、私はそれがPythonでも利用可能であったことを覚えていると確信しています。利用可能
あなたが本当にPythonのを使用したいが、ただ、より表現力と強固な正規表現ライブラリをしたい、ユニコード、に行儀され、特に1一方、あなたはマシュー・バーネットのregex
モジュールを使用する場合、 Python2とPython3の両方のために。tr18のレベル1準拠要件(Unicode正規表現に関する標準文書)に準拠しているだけでなく、いくつかの完全にsui generisのその他の巧妙な機能もすべて備えています。あなたが正規表現の愛好家なら、それはチェックアウトする価値があります。
「どちらが最適ですか?何のために? Appleのライセンスを使用するのに最適ですか?メモリの最善の使用?あなたが最適化しようとしている測定可能なものをいくつか提供してください。次に、測定方法を教えてください。 –
なぜ2つの全く異なる言語の正規表現エンジンを比較していますか?これは「どちらの月がより短い軌道を持っているか、タイタンかプロテウスか」と尋ねるのと同じです。 – BoltClock
私のMac OSアプリケーションでは、いくつかのテキスト処理を行い、Pythonでこれを行う方が速いのかどうか疑問に思っていました。 – janeh