非常に厳密なルールを設定すると、C# での正規表現のパフォーマンスにどのような影響があるかを知りたいと思いました。
たとえば、文字列 (どこかから読み取る) が [a-zA-z0-9] のみを含むと予想しているが、同時に、文字列を提供する文字列が常に次の文字列を返すと確信している場合にはこのルールがあります。したがって、この場合は「.」のみを使用します。a-zA-Z0-9 ではなく、パフォーマンスに影響がありますか?
これら 2 つの機能はどのように異なるのでしょうか。
非常に厳密なルールを設定すると、C# での正規表現のパフォーマンスにどのような影響があるかを知りたいと思いました。
たとえば、文字列 (どこかから読み取る) が [a-zA-z0-9] のみを含むと予想しているが、同時に、文字列を提供する文字列が常に次の文字列を返すと確信している場合にはこのルールがあります。したがって、この場合は「.」のみを使用します。a-zA-Z0-9 ではなく、パフォーマンスに影響がありますか?
これら 2 つの機能はどのように異なるのでしょうか。
文字列 (どこかから読み取る) に [a-zA-z0-9] のみが含まれていると予想される場合、同時に、文字列を提供する文字列は常に次の文字列を返すと確信しています。このルール。
あなたはこれを確信することはできません。と仮定することの意味を知っています。あなたのコードは他の人が使用でき、あなたのプログラムは他の人が入力することができます。防御コードを書きます。いつも。言い訳しない。
したがって、この場合は「.」のみを使用します。a-zA-Z0-9 ではなく、パフォーマンスに影響がありますか?
上記の説明を無視して、入力が期待どおりであることが確実な場合は、そうであるかどうかを確認する必要はありません。「文字列の長さはX以上になります」などの他の制約が必要です。これは、チェックstring.Length
して、のような方法で簡単に実行できますString.INOWS()
。