急,在线等,java中replace的问题

newLife_bj 2012-09-06 10:07:01
从数据库获取的数据:
<A href="http.baidu.com">http://www.baidu.com</A>
<A href="http://www.google.com">http://www.google.com</A>
……

记录中可能有多个链接,我要做的是将<a></a>中部分的url设置背景色,href中的url不做修改

目前个人的想法:1.先验证记录中是否有链接 2.如果没有则直接replaceALl,如果有利用循环对每一个完整的<a></a>进行处理:先获取第一个"<a href="的index1,还有结束符">"的index2,然后获取"</a>"的index3,查找到要设置背景色的文字的inde4,如果index4在index2和index3之间则替换

这样的实现方法很麻烦很浪费资源,求更好的方法
...全文
145 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
suciver 2012-09-06
  • 打赏
  • 举报
回复

String str = "<A href=\"http.baidu.com\">http://www.baidu.com</A>\r\n"
+ "<div href=\"http://www.google.com\">http://www.google.com</div>";
Pattern p=Pattern.compile("(?i)(http://[^\\<\\>]+)(?=\\</(\\w+)\\>)");
Matcher m=p.matcher(str);
StringBuffer sb=new StringBuffer();
while(m.find()){
System.out.println(m.start()+"->"+m.end());
m.appendReplacement(sb, "你想要的字符串");
}
m.appendTail(sb);
System.out.println(sb);
newLife_bj 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
用正则表达式以>开头<结尾不就行了
[/Quote]

数据库中的数据被我简化了,里边不光有<a>,还有好多<div>等样式
a243138945 2012-09-06
  • 打赏
  • 举报
回复
用正则表达式以>开头<结尾不就行了
newLife_bj 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
部分的url?
这部分的url有规律么?什么规律?不然怎么搞。
[/Quote]

举个例子<A href="http://baidu.com">http://www.baidu.com</A>,目的只是设置http://www.baidu.com中的http或者其他的部分,这个是C++传过来的参数
菖蒲老先生 2012-09-06
  • 打赏
  • 举报
回复
部分的url?
这部分的url有规律么?什么规律?不然怎么搞。
newLife_bj 2012-09-06
  • 打赏
  • 举报
回复
谢了,现在结贴
suciver 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
引用 6 楼 的回复:
Java code


String str = "<A href=\"http.baidu.com\">http://www.baidu.com</A>\r\n"
+ "<div href=\"http://www.google.com\">http://www.google.com</div>";
Pattern p=Pattern.c……


我如何……
[/Quote]
里面m.group()就是你要的中间URL
newLife_bj 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
Java code


String str = "<A href=\"http.baidu.com\">http://www.baidu.com</A>\r\n"
+ "<div href=\"http://www.google.com\">http://www.google.com</div>";
Pattern p=Pattern.c……
[/Quote]

我如何取到<A></A>中间的url呢

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧