C# 正则表达式判断是否为特殊字符

其实判断是否为特殊字符有两种思路:

第一种思路,将所有特殊字符都列出来,判断目标字符串包含特殊字符。

public bool IsSpecialChar(string str){
    Regex regExp = new Regex("[ \\[ \\] \\^ \\-_*×――(^)$%~!@@##$…&%¥—+=<>《》!!???::•`·、。,;,.;/\'\"{}()‘’“”-]");
    if(regExp.IsMatch(str)){
        return true;
    }
    return false;
}

这种思路的问题就是你不能漏掉任何一个特殊字符,要不然代码就有Bug

第二种思路,将所有不是特殊字符的字符都列出来,判断目标字符串是否不包含这些字符

public bool IsSpecialChar(string str){
    Regex regExp = new Regex("[^0-9a-zA-Z\u4e00-\u9fa5]");
    if(regExp.IsMatch(str)){
        return true;
    }
    return false;
}

这种思路的好处就是只要把汉字、字母、数字这些不是特殊字符的字符列出来。

你可能感兴趣的:(C#)