ホームページ >バックエンド開発 >C++ >\ dは正規表現で[0-9]または[0123456789]よりも効率が低いですか?

\ dは正規表現で[0-9]または[0123456789]よりも効率が低いですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-31 18:36:10920ブラウズ

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

dの正規表現の効率は[0-9]

ほど効率的ではありません 最近の議論では、一部の人々は、正規表現でまたは

の代わりに

を使用する効率に疑問を呈しました。予想外に、C#正規表現エンジンのテストは、[0123456789]の効率が他の2つのオプションよりも低いことを示しています。 [0-9] d効率が低いことの考えられる原因d

unicode番号:

には、一般的な0-9だけでなく、すべてのUnicode番号が含まれています。したがって、分析的でない非標準の数値は、正規表現エンジンの速度を遅くする可能性があります。
  1. 不要な特別機能:d以外の追加関数を含めて、より複雑な処理が必要になる場合があります。これらの追加機能は効率に影響します。
  2. テスト結果d この問題を証明するために、次のテストが実行されました。 [0-9]
  3. 10,000ランダムな文字列、各文字列には1,000文字が含まれ、その半分には数字が含まれています。

各正規表現(

)の時間を処理する時間:

正規表現 時間 d に対する時間の割合 > 00:00:00.2141226 100% > 00:00:00.1357972 63.42% > 00:00:00.1388997 64.87%
    結果は、効率の観点からおよび
  • よりも著しく優れていることを示しています。
  • d結論[0-9][0123456789]
  • は、より多くのデジタルマッチング関数を提供できますが、パフォーマンスの観点から犠牲になります。キータイプのアプリケーションの場合、より簡潔な
または
正则表达式 时间 相对d的时间百分比
d 00:00:00.2141226 100%
[0-9] 00:00:00.1357972 63.42%
[0123456789] 00:00:00.1388997 64.87%
を使用することをお勧めします。

以上が\ dは正規表現で[0-9]または[0123456789]よりも効率が低いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。