1.为什么正则"\s"这么写就有错,而"\n"却没有错?详细解释一下原因
2.c#中怎么判断网络是否出于连接状态?

解决方案 »

  1.   

    1、最好把整个表达式的要求说一下,不然没法判断
    2、
    public string NetStatus()
                    {
                            ManagementObjectCollection objects;
                            string status = "";
                            ManagementObjectSearcher searcher = new ManagementObjectSearcher();
                            searcher.Query.QueryString = "Select * From Win32_NetworkAdapter ";
                            objects = searcher.Get();
                            foreach(ManagementObject obj in objects)
                            {
                                    foreach(PropertyData p in obj.Properties)
                                    {
                                            if(p.Name.Equals("NetConnectionStatus"))
                                            {
                                                    if(p.Value!=null)
                                                    {
                                                            status = p.Value.ToString();
                                                    }
                                            }
                                    }
                            }
                            switch(status)
                            {
                                    case "0":
                                            return "Disconnected";
                                    case "1":
                                            return "Connecting ...";
                                    case "2":
                                            return "Connected";
                                    case "3":
                                            return "Disconnecting ...";
                                    case "4":
                                            return "Hardware not present";
                                    case "5":
                                            return "Hardware disabled";
                                    case "6":
                                            return "Hardware malfunction";
                                    case "7":
                                            return "Media disconnected";
                                    case "8":
                                            return "Authenticating";
                                    case "9":
                                            return "Authentication succeeded";
                                    case "10":
                                            return "Authentication failed";
                                    default:
                                            return "";
                            }
                    }
      

  2.   

    第一个问题是:
    string pattern = "\s";这样c#涉及器直接提示我这就是一个错误的转义序列
    而我用
    string pattern = "\n";却不会出现这样的提示,为什么?
      

  3.   

    \是C#中的转移字符,他后面的那个字符会被认为有特殊用途
    \s在C#中没有意义,因此会被报错,而\n是C#中的换行符,虽然不抱错,但是在正则表达式中写\n也起不到应有的效果,要写在正则表达式中,\要用\\来代替,也就是说,应该写成
    "\\s"

    "\\n"
    分别对应正则表达式中的\s和\n两个符号
      

  4.   

    你的意思是说:\s在正则表达式中是表示:匹配空白字符,但是在c#语法中却没有实际意义,所以才导致的错误吗?
    如果我现在要检查用户输入的正则是否合法(能匹配我的需求)
    比如我要求用户输入的正则类似
    string pattern = @"[\s\S]*?(?<content>...)[\s\S]*";  //...表示任意字符
    我该怎么写我的正则去检查用户输入的正则是否合法?
      

  5.   

    你这样写
    string pattern = @"[\s\S]*?(?<content>...)[\s\S]*";
    没有问题,前面加上@了,就不会被转义了
    但是去掉@的话就会报“这就是一个错误的转义序列”的错误
      

  6.   

    你的要求是什么?
    要检查用户输入了一个\s,那在C#中得写pattern = @"\\s"
      

  7.   

    谢谢你,另外你上边那个ManagementObjectSearcher 使用的查询语句从哪里来的?
    都能对什么查询,我查msdn也没有找到查询这方面的
      

  8.   

    WMI我也不熟悉,MSDN中有完整的WMI参考,可以去找一下有关WMI的资料看一下