2012-03-01 6 views
0

\r?\n\r?\nのような正規表現があります。正確に同じ文字数を使って(\r?\n){2}と書くことができます。繰り返し正規表現とシーケンス数の指定の比較

この2つのパフォーマンスにはどのような違いがありますか?この種の状況のベストプラクティス。 2(1秒の間に非常に小さなパフォーマンスの差はおそらくほんの少し遅くありさ

+2

の代わりに尋ねると盲目的にパフォーマンス関連の質問を受け入れ、あなたは、単に自分自身を見つけるために[jsperf.com](http://jsperf.com)を使用することができます。インストールした任意のブラウザでテストを実行し、必要のないブラウザでテストを実行するように友だちに依頼することもできます。 – rodneyrehm

+0

JavaScriptは私の仕事の範囲外です。以前はjsperfについて聞いたことがありませんでした。間違いなく今すぐブックマークに追加してください。ありがとう。 – Covar

答えて

4

は、繰り返しパターンを使用して{2}を使用するよりもはるかに高速であることを示すために、JSPerfですあなたは通常の状況で気づくだろう)。

ただし、式が繰り返しサブ式で構成されていることを明確に示しているため、2番目の式はより優れています。

+0

確認済み:http://jsperf.com/regex-group-vs-non-group –

+0

これはRADサイトです。私は完全にそれを保っています。最終結果によって定義された順序とは異なる順序で完了したようです。面白い... – Relic

+2

キャプチャしていないグループを使用して、同じパフォーマンスを得る:http://jsperf.com/js-repeated-regexp-or-specific-number-of-sequences/2 – Qtax

2

キャプチャされた値を使用しない場合は、キャプチャグループ()を使用しても意味がありません。代わりにnon-capturing group(?:)を使用して、より良いパフォーマンスを得ることができます。

だから、式はなる:

(?:\r?\n){2} 
関連する問題