c#正規表現
の理由はd
[0-9]
よりも低いです
>の数と一致するために使用される効率は、d
および[0-9]
文字セットよりも予想外に低いことを示しています。この発見により、2つの問題がトリガーされました
[0123456789]
人々は、特定の文字範囲と狭い範囲をカバーしているため、スコープがより効率的であると考えるかもしれません。ただし、テスト結果は、2つの方法のパフォーマンスの違いが最も少ないことを示しています。
[0-9]
[0123456789]
テストでは、の効率が
の略語と見なされるため、特に不可解です。さらなる調査により、根本的な違いが明らかになりました:
Unicode番号の一致、d
ASCII番号の一致[0-9]、
を一致させます。これには、他の言語の文字や、ペルシャの数字(۱۲۳۴۵۶۷۸۹)やダバガリ数(०१२३४५६७८९)などの文字が含まれます。これを証明するために、次のコードはすべてのユニコード番号を含む文字列を生成します。
d
[0-9]
生成された文字列には、アラビア語、タイ、カムノ、その他の文字の文字を含む数字として識別されたさまざまな文字が表示されます。 d
[0-9]
パフォーマンスインパクト
d
と[0-9]
のパフォーマンスの違いを説明する幅広い文字範囲(ユニコード番号とASCII数)を確認してください。 ASCII数のみの場合、使用を使用すると、
以上がc \ d`は、c#regexで桁マッチングの場合は `[0-9]`よりも効率が低いのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。