首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

正则表达式轮换url

2013-08-14 
正则表达式替换url请教各位网友,下面这个正则表达式改怎样写?原始代码是这样:div stylebackground-colo

正则表达式替换url
请教各位网友,下面这个正则表达式改怎样写?
原始代码是这样:


<div style="background-color: #cccccc; margin: 5px auto; width: 215px; height: 215px">
<a href="http://XXX/t?id=XXX" target="_blank" title="XXX"><img src="http://XXX/aaa.jpg" style="width: 213px; height: 213px" /> </a></div>
<div style="line-height: 14px; background-color: #fff; margin: 5px auto; width: 215px; height: 14px">

现在我只想替换掉<a href>标签中的url,在"<"可能有多个空格或者其他字符,在“a”与“href”之间可能存在其他的元素(例如可能是<a title="XXX" href="XXX">),请问这个url该怎么写呢? 正则表达式
[解决办法]
String html = ...;
Document doc = Jsoup.parseBodyFragment(html);
Element a = doc.select("a").first();
a.attr("href", "http://www.baidu.com");
String result = doc.outerHtml();

结果:
<html>
 <head></head>
 <body>
  <div style="background-color: #cccccc; margin: 5px auto; width: 215px; height: 215px">
   <a href="http://www.baidu.com" target="_blank" title="XXX"> <img src="http://XXX/aaa.jpg" style="width: 213px; height: 213px" /> </a>
  </div>
  <div style="line-height: 14px; background-color: #fff; margin: 5px auto; width: 215px; height: 14px"></div>
 </body>
</html>

[解决办法]
String source = "<div style="background-color: #cccccc; margin: 5px auto; width: 215px; height: 215px"><a href="http://XXX/t?id=XXX" target="_blank" title="XXX"><img src="http://XXX/aaa.jpg" style="width: 213px; height: 213px" /> </a></div><div style="line-height: 14px; background-color: #fff; margin: 5px auto; width: 215px; height: 14px">"; 



String reg = "<a[^<>]*?\\shref=['"]?(.*?)['"].*?>";
Matcher m = Pattern.compile(reg).matcher(source);
while (m.find()) {
String value = m.group(1);
System.out.println(value);
System.out.println(source.replace(value, "www.xxoo.com"));
}

热点排行