我认为您只想在正则表达式中添加一个空格:
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]$"))
Update
看来您可能想要一个排除组中字符的正则表达式。
您当前的正则表达式是从字符串的开头查找^
到字符串末尾$
只针对组中的一个角色A-Za-z0-9
。如果你想匹配完全相反的内容,你可以使用 not 运算符!
在你之前Regex.IsMatch
, like:
if (!Regex.IsMatch(columnValue.ToString(), @"^[ A-Za-z0-9]$"))
但是,如果您想在正则表达式中写入排除的字符组,您可以将^
在你的小组中。当。。。的时候^
在组内[^]
它后面的任何字符都被排除在匹配之外。
正则表达式[A-Z]
将匹配任何字符 A-Z。正则表达式[^A-Z]
会匹配任何字符NOT A-Z.
如果这就是您正在寻找的内容,您可以将声明更改为:
if (Regex.IsMatch(columnValue.ToString(), @"[^A-Za-z0-9\ ]"))
该语句将匹配包含不在该组中的任何字符的任何字符串。因此,如果他们输入“Hello World”,它将不匹配。如果他们输入“Hello!World”,它将匹配,因为“!”不在组中。
注:领先的^
和尾随$
被删除。在这个正则表达式中,我们不关心字符串的长度,因为我们只匹配字符串中我们不期望的字符。