正規表現にスペースを追加したいだけだと思います。
if (Regex.IsMatch(columnValue.ToString(),"^[ A-Za-z0-9]$"))
正規表現を作成するときは、一般に、逐語的な文字列演算子@
を使用することをお勧めします。特殊な式の多くでは、円記号を使用する必要があるためです。
if (Regex.IsMatch(columnValue.ToString(), @"^[ A-Za-z0-9]$"))
パターン内の空白を無視するように正規表現に明示的に指示している場合は、スペース文字をエスケープする必要があります。
if (Regex.IsMatch(columnValue.ToString(), @"^[\ A-Za-z0-9]$", RegexOption.IgnorePatternWhitespace))
空白文字(スペース、タブ、改行など)を使用できるようにする場合は、空白文字クラスを使用できます。\s
if (Regex.IsMatch(columnValue.ToString(), @"^[\sA-Za-z0-9]$"))
アップデート
グループ内の文字を除外した正規表現が必要だったようです。
現在の正規表現は、文字列の先頭から^
末尾まで$
、グループ内の1文字だけを探していA-Za-z0-9
ます。正反対に一致させたい場合は、次のように、の!
前にnot演算子を使用できます。Regex.IsMatch
if (!Regex.IsMatch(columnValue.ToString(), @"^[ A-Za-z0-9]$"))
ただし、正規表現で除外された文字のグループを記述したい場合は、グループにを入れることができ^
ます。^
がグループ内にある場合、その後に続く[^]
すべてのキャラクターは試合から除外されます。
正規表現[A-Z]
は、任意の文字AZに一致します。正規表現は、 AZ[^A-Z]
以外の任意の文字に一致します。
それがあなたが探していたものである場合、あなたはあなたの声明を次のように変えることができます:
if (Regex.IsMatch(columnValue.ToString(), @"[^A-Za-z0-9\ ]"))
このステートメントは、グループに含まれていない文字を含むすべての文字列に一致します。したがって、「Hello World」と入力すると、一致しません。「Hello!World」と入力すると、「!」と一致します。グループに含まれていません。
注:先頭^
と末尾$
が削除されました。この正規表現では、文字列のどこにも予期していなかった文字にのみ一致するため、文字列の長さは気にしません。