连接服务器时,服务端返回一段<html>....</html>静态html文件的String数据,需要解析出里面的具体跳转、或者重定向的地址,尝试过其他的第三方库,专门java解析HTML标签的,但是发现没有达到想要的效果,而且用起来很不方便,网上搜了一段正则,然后自己改了一下,适配具体需求,效果完美。
//str为所有<html>标签的String,tag为需要取得的标签内容(<LoginURL>)
public static String getTagValue(String str, String tag) {
//获取其中的标签<LoginURL>http://255.225.81.255:8090/login?nasIp=10.0.0.1</LoginURL>
Pattern p = Pattern.compile("<" + tag + ">.*?</" + tag +">");
Matcher m = p.matcher(str);
String temp = "";
if(m.find())
temp = m.group();
//获取内部值http://255.225.81.255:8090/login?nasIp=10.0.0.1
temp = temp.replaceAll("\\w*<" + tag + ">|</" + tag + ">\\w*", "");
return temp;
}