「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 正規表現における\\ dと\ [0-9 \]または\ [0123456789]の効率の比較

正規表現における\\ dと\ [0-9 \]または\ [0123456789]の効率の比較

2025-04-15に投稿されました
ブラウズ:956

Is \d Really Less Efficient Than [0-9] or [0123456789] in Regex?

\ dは[0-9]

ほど効率的ではありません。

最近の議論では、一部の人々は、正規表現で または \ d \ Dの代わりに [0123456789] を使用する効率に疑問を呈した。驚くべきことに、C#正規表現エンジンでのテストは、 \ d が他の2つのオプションよりも効率が低いことを示しました。

非効率性の可能性のある原因

  1. unicode番号: \ d には、一般的な0-9だけでなく、すべてのユニコード番号が含まれています。したがって、非標準の数値を解析すると、正規表現エンジンが遅くなる可能性があります。
  2. 不必要な特別機能: \ d には、 [0-9] 以外の追加機能が含まれています。これらの追加機能は、効率に影響を与える可能性があります。

テスト結果

この問題を証明するために、次のテストが実行されました:

  • 10,000のランダム文字列。それぞれが1000文字を含み、その半分には数字が含まれています。
  • それぞれの正規表現の文字列の処理に費やした時間( \ d [0-9] [0123456789]
  • ):
] 正規表現時間 \ d に比べて時間の割合 ] 100% [0-9] 00:00:00.1357972 63.42%]] 00:00:00.1388997
\ d 00:00:00.2141226
]]
[0123456789] ]
64.87%

結果は、 [0-9] および

[0123456789]

は、効率の観点から \ d よりもかなり優れていることを示しています。

結論は \ d は、より広い範囲のデジタルマッチング機能を提供できますが、パフォーマンスを犠牲にしています。パフォーマンスが批判的なアプリケーションの場合、よりシンプルな

[0-9]

またはIs \d Really Less Efficient Than [0-9] or [0123456789] in Regex?
[0123456789]

を使用することをお勧めします。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3