我想用正则表达式获取网页中 链接 和 内容<img src="http://www.baidu.com/icon.png" /><a href="http://guide.sina.cn/?pos=1&vt=1">导航</a><a href="http://sina.cn/nc.php?pos=1&vt=1">新闻</a><a href="http://mil.sina.cn/?pos=1&vt=1">军事</a><a href="http://weibo.cn/?gotoreg=1&from=index&s2w=index&wm=ig_0001_index&pos=1&vt=1">微博</a><a href="http://finance.sina.cn/?sa=t60d13v512&pos=1&vt=1">股票</a><br/>
我想得到内容中的href连接和内容 例如http://guide.sina.cn/?pos=1&vt=1 导航
http://sina.cn/nc.php?pos=1&vt=1 新闻
...
http://finance.sina.cn/?sa=t60d13v512&pos=1&vt= 股票
我想得到内容中的href连接和内容 例如http://guide.sina.cn/?pos=1&vt=1 导航
http://sina.cn/nc.php?pos=1&vt=1 新闻
...
http://finance.sina.cn/?sa=t60d13v512&pos=1&vt= 股票
解决方案 »
- 救急!Spring中applicationcontext.xml有红叉,说encoding问题,不能创建bean实例
- java 如何解析pdf中的公式
- Applet,或portlet2.0 哪一种技术实现更好。
- extjs tree DWRTreeLoader从数据库读出来的叶节点在页面怎么不能添加子节点啊,但读出来的节点就可以添加子节点
- 是在大公司做技术支持还是在小公司做开发
- Memcached Client 获取到奇怪的内容
- CMP问题:findAll方法性能问题?
- java的路径设置
- 如何通过EJB删除数据库中的一行记录? 请帮忙
- 大家帮帮忙,送200分
- 谁知道这是什么编码出来的?帮帮忙啊
- java 远程调用 weblogic10.3上面的数据源报错?
* 文件中读取 目标文件
* @return
* @author wangjikuan
*/
private static StringBuffer getSb(){
StringBuffer sb = new StringBuffer();
File f = new File("c:/xx.txt");
try {
BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(f), "gbk"));
String s = "";
while((s = reader.readLine()) != null){
sb.append(s);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb;
}
/**
* 解析 字符串,得到目标
* @param sb
* @author wangjikuan
*/
private static void parse(StringBuffer sb){
String regx = "<a.*?</a>";
Pattern p = Pattern.compile(regx);
Matcher m = p.matcher(sb.toString());
String regx1 = "(?<=href=\").*(?=\")";
Pattern p1 = Pattern.compile(regx1);
String regx2 = "(?<=>).*(?=<)";
Pattern p2 = Pattern.compile(regx2);
while(m.find()){
String child = m.group();
Matcher m1 = p1.matcher(child);
if(m1.find()){
System.out.print(m1.group());
}
Matcher m2 = p2.matcher(child);
if(m2.find()){
System.out.println(m2.group());
}
}
}
public static void main(String[] args) {
parse(getSb());
}
public static void main(String args[]) {
String str = "<img src=\"http://www.baidu.com/icon.png\" /><a href=\"http://guide.sina.cn/?pos=1&vt=1\">导航</a><a href=\"http://sina.cn/nc.php?pos=1&vt=1\">新闻</a><a href=\"http://mil.sina.cn/?pos=1&vt=1\">军事</a><a href=\"http://weibo.cn/?gotoreg=1&from=index&s2w=index&wm=ig_0001_index&pos=1&vt=1\">微博</a><a href=\"http://finance.sina.cn/?sa=t60d13v512&pos=1&vt=1\">股票</a><br/>";
String regex = "href=\"(.*?)\">(.*?)<"; Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println("-------------");
}
} private static String converse(String str, int pos) {
String result = "";
for (int i = 0; i < str.length(); i++) {
int index = pos;
if (i > pos)
index = str.length() - i + pos;
else if (i < pos)
index = pos - i - 1;
result += str.charAt(index);
}
return result;
}