3

C#、ASP.NET アプリケーションの場合 - これは単純なはずですが、この正規表現がわかりません。テキスト ボックスが値として送信できない文字列のリストが必要で、大文字と小文字の区別を無視する必要があります。

例 - 大文字に関係なく、次の文字列を拒否する正規表現が必要です- abc、def、ghi

正規表現でそれらの1つを拒否することさえできません。私は次の方法を試しました -

[RegularExpression(@"(\W|^)(?i)!ABC(?-i)(\W|$)", ErrorMessage = "REJECTED!")]
public string Letters { get; set; }

それはうまくいきません!すべてを拒否するようです。誰がそれがどのように見えるべきか知っていますか? それらをすべて拒否するにはどうすればよいですか?

提供できるヘルプをありがとう!

4

6 に答える 6

2

文字列だけを無視したい場合は、これを使用してください

^(?i)(?!.*(?:abc|def|ghi))

単語を無視したい場合は、パターンの周囲に単語の境界を使用します

^(?i)(?!.*\b(?:abc|def|ghi)\b)
于 2013-02-14T21:39:38.463 に答える
2

簡単で汚いですが、これを試してみてください(問題を正しく理解していると仮定して!)

^(?i)(?!(ABC|DEF|GHI)(?-i)).*$
于 2013-02-14T21:38:24.923 に答える
2

標準の正規表現構文では、これは次のようになります^(?!abc$)(?!def$).*

于 2013-02-14T21:57:33.560 に答える
2

これにより、abc、def、および ghi が検出されます

(?i)(abc|def|ghi)

で囲み、^それら$のみに一致し、他には何も一致しません (例: wxabcyzには一致しません) 。

^(?i)(abc|def|ghi)$

最後に、「This is some abc random text」のようなものに一致させて拒否したい場合は、これを行います

(?i)\b(abc|def|ghi)\b
于 2013-02-14T21:58:01.170 に答える
1
^((?!abc)|(?!def)|(?!ghi).)*$ 

それはそれについてです。

ところで、次のリソースのようなものを試してみることをお勧めします。

regex palregular-expressions.info

于 2013-02-14T21:59:36.690 に答える