今回は簡単な質問です。
正規表現を使用して、文字列に文字が含まれていないかどうかをテストしようとしています。式は「[^ x ]」の形式だと思っていましたが、 xは表示されたくない文字です。しかし、それは機能していないようです。
例えば、
Regex.IsMatch("103","[^0]")
と
Regex.IsMatch("103&","[^&]")
どちらも true を返します (false が必要です)。
私は使い始めて"[^&]"
、& を \& としてエスケープする必要があるのではないかと考えましたが、違いはないようです。
アイデア?些細なことだと思います。
また、私は .NET を使用しているので、そのことを覚えておいてください。
編集1:
私はこれを見つけましたが、私が抱えている問題には答えていないようです。
編集2:
KevinとJoelの提案に応えたいと思いました。これらの提案は確かに高速ですが、この場合に必要な柔軟性を実現していません。そのため、検索でこの質問を見つけた場合は、それらの回答がニーズに合っているかどうかを確認してください. 私の場合、正規表現は DataTable 検証メソッドに渡されます。このメソッドは各行をループし、特定の列のその行の内容が渡される RegEx と一致することを確認します。このメソッドを再利用するので検証されている他のいくつかの DataTables については、次のことを行いました。
- 正規表現を使用して、幅広い検証を有効にする。
- 常に正の一致を探します (つまり、!Regex.IsMatch(cell, regexvariable) を使用する代わりに、このメソッドを呼び出す DataTables の大部分が使用するため、常に Regex.IsMatch(cell, regexvariable) を使用できることに依存したかったのです)ネガティブではなくポジティブマッチ。
うまくいけば、それは役に立ちます。