public bool MatchWord(string temp)
{
     string excludeString = @"!@%^*()={};~`<>,?\|";
     Regex excludeRegex = new Regex(@"[" + excludeString + "]", RegexOptions.Compiled);
     return excludeRegex.IsMatch(temp);
}当传入temp = @“\";
返回false,其特殊字符他都返回true
修改程序public bool MatchWord(string temp)
{
     string excludeString = @"!@%^*()={};~`<>,?\\|";
     Regex excludeRegex = new Regex(@"[" + excludeString + "]", RegexOptions.Compiled);
     return excludeRegex.IsMatch(temp);
}返回值正常,想问问这是为什么呢??我用了@为什么还要用\\呢?

解决方案 »

  1.   


    public bool MatchWord(string temp)
    {
         string excludeString = @"!@%^*()={};~`<>,?\|";
         Regex excludeRegex = new Regex(@"[" + excludeString + "]", RegexOptions.Compiled);
         return excludeRegex.IsMatch(temp);
    }当传入temp = @“\";
    返回false,其特殊字符他都返回true
    修改程序public bool MatchWord(string temp)
    {
         string excludeString = @"!@%^*()={};~`<>,?\\|";\\此处将\改为\\
         Regex excludeRegex = new Regex(@"[" + excludeString + "]", RegexOptions.Compiled);
         return excludeRegex.IsMatch(temp);
    }返回值正常,想问问这是为什么呢??我用了@为什么还要用\\呢?
      

  2.   

    @"\"=="\\"没有@那么\是一个转义符你写的正则还不如用\W来实现。 return   System.Text.RegularExpressions.Regex.Match("yourstr","\\").Success;