想用Java解析Html里面的标签,例如我要解析html里面的 <link rel="openid.server" href="http://www.xxxxxx.com" />。可以使用 javax.swing.text.html.parser 或者org.htmlparser 或者 javax.xml.parsers.SAXParser。不过,要求Html必须是一个规范的XML格式,而网页基本上都不符合。
所以采用正则匹配来解决。
matcher.find() 和 matcher.matches()的区别:matches是将整个输入串与模式匹配,find是查找输入串中与模式匹配的子串。[b]但是为什么m.matches()在这里匹配不到呢?[/b]
所以采用正则匹配来解决。
import ...
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public final class HttpTookit {
private static Log log = LogFactory.getLog(HttpTookit.class);
public static String doGet(String url, String queryString) {
...
return response;
}
public static void main(String[] args) {
String x = doGet("http://www.xxxxx.com", "");
System.out.println(x);
Pattern p = Pattern.compile(".* href=\"(.*)\" />.*");
Matcher m = p.matcher(x);
//m.matches(); 不知道为什么这里匹配不到
if (m.find()) {
System.out.println("m.group():" + m.group(1));
}
}
}
matcher.find() 和 matcher.matches()的区别:matches是将整个输入串与模式匹配,find是查找输入串中与模式匹配的子串。[b]但是为什么m.matches()在这里匹配不到呢?[/b]