?wlanacname=XXXXXX-b&wlanuserip=10.1.50.11&wlanacip=111.1.11.1请求用正则表达式的方法查找出:wlanuserip="",返回正确的IP地址,如上面的,应该返回:10.1.50.11
同理,查找出:wlanacip="",返回正确的IP地址,如上面的,应该返回:111.1.11.1我是这样尝试的: private static string GetIP(”?wlanacname=XXXXXX-b&wlanuserip=10.1.50.11&wlanacip=111.1.11.1“)
    {
        Regex r = new Regex("?wlanacname=XXXXXX-b&wlanuserip=(?<matchValue>[^\"]+)");
        Match m = r.Match(?wlanacname=XXXXXX-b&wlanuserip=10.1.50.11&wlanacip=111.1.11.1);
        if (m.Success)
        {
            return m.Groups["matchValue"].Value;
        }
        else
        {
            return "你所在网段的IP暂时未能自动获取,请手动填写!";
        }
    }
//提示错误:
正在分析?wlanacname=XXXXXX-b&wlanuserip=(?<matchValue>[^\"]+)"- 限定符 {x,y} 前没有任何内容。

解决方案 »

  1.   


     Regex r = new Regex(@"\?wlanacname=XXXXXX-b&wlanuserip=(?<matchValue>[^&]+)");
                Match mo = r.Match(@"?wlanacname=XXXXXX-b&wlanuserip=10.1.50.11&wlanacip=111.1.11.1");
                if (mo.Success)
                {
                    Console.WriteLine(mo.Groups["matchValue"].Value);
                }
                else
                {
                    Console.WriteLine("你所在网段的IP暂时未能自动获取,请手动填写!");
                }
      

  2.   

    匹配两个值Regex r = new Regex(@"\?wlanacname=XXXXXX-b&wlanuserip=(?<matchValue1>[^&]+)&wlanacip=(?<matchValue2>[^&]+)");
                Match mo = r.Match(@"?wlanacname=XXXXXX-b&wlanuserip=10.1.50.11&wlanacip=111.1.11.1");
                if (mo.Success)
                {
                    Console.WriteLine(mo.Groups["matchValue1"].Value);
                    Console.WriteLine(mo.Groups["matchValue2"].Value);
                }
                else
                {
                    Console.WriteLine("你所在网段的IP暂时未能自动获取,请手动填写!");
                }
      

  3.   

    (?<=wlanuserip=)(?<userip>[^&]*)&wlanacip=(?<acip>[\d\.]*)
      

  4.   

    (?<=wlanuserip\b\075).*(?=\046wlanacip)(?<=wlanacip\b\075).*