Java中的正则匹配

想用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格式,而网页基本上都不符合。

所以采用正则匹配来解决。
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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值