我覺得你只是想空間添加到您的正則表達式:
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]$"))
更新
看來你可能想要一個排除組中字符的正則表達式。
您當前的正則表達式從字符串^
字符串$
的年底開始尋找一個字符組A-Za-z0-9
英寸如果你想匹配正好相反,你可以使用不操作!
您Regex.IsMatch
之前,如:
if (!Regex.IsMatch(columnValue.ToString(), @"^[ A-Za-z0-9]$"))
但是,如果你想寫一個字符排除組正則表達式,你可以把一個^
你組。當^
位於組[^]
之內時,其後的任何字符將從匹配中排除。
正則表達式[A-Z]
可以匹配任何字符A-Z。正則表達式[^A-Z]
將匹配任何字符非A-Z。
如果這是你要找的人,你可以你的聲明更改爲:
if (Regex.IsMatch(columnValue.ToString(), @"[^A-Za-z0-9\ ]"))
此語句將匹配任何包含字符不是組中的任何字符串。所以如果他們輸入「Hello World」,它就不會匹配。如果他們輸入「Hello!World」,它會匹配,因爲「!」不在組中。
注意:前導^
和尾隨$
已被刪除。在這個正則表達式中,我們不關心字符串的長度,因爲我們只匹配一個字符串中我們並不期待的字符。
感謝您的出色解釋,但是當我使用上面的正則表達式時,字符串「2」如何落入if語句中? – user1683987
再次感謝您的答案,對於那個愚蠢的問題感到抱歉:D – user1683987