请教正则表达式高手,处理下这个字符串,获取正确的IP。
?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} 前没有任何内容。
--------------------编程问答-------------------- 匹配两个值
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暂时未能自动获取,请手动填写!");
}
--------------------编程问答-------------------- (?<=wlanuserip=)(?<userip>[^&]*)&wlanacip=(?<acip>[\d\.]*)
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暂时未能自动获取,请手动填写!");
}
--------------------编程问答-------------------- (?<=wlanuserip\b\075).*(?=\046wlanacip)
(?<=wlanacip\b\075).*
--------------------编程问答-------------------- wlan portal-ac的协议啊!
补充:.NET技术 , C#