急 java里用正则替换掉img标签的src里的内容
publicstaticvoidmain(String[]args){Stringcontent="<p><imgstyle=\"width:356px;height:1...
public static void main(String[] args) {
String content = "<p><img style=\"width:356px;height:163px;\" title=\"33\" alt=\"33\" src=\"/WorkStation/attached/20110802/20110802131500_758.gif\" width=\"33\" height=\"3\"</p>";
content = content.replaceAll("(.*?)src=\"(.*?)","$1src=\"../image$2");
System.out.println(content);
}
怎么把src内的内容 替换成“../image/图片名.gif” 。图片名不变,把图片名前面的地址替换成../image/ 展开
String content = "<p><img style=\"width:356px;height:163px;\" title=\"33\" alt=\"33\" src=\"/WorkStation/attached/20110802/20110802131500_758.gif\" width=\"33\" height=\"3\"</p>";
content = content.replaceAll("(.*?)src=\"(.*?)","$1src=\"../image$2");
System.out.println(content);
}
怎么把src内的内容 替换成“../image/图片名.gif” 。图片名不变,把图片名前面的地址替换成../image/ 展开
展开全部
我觉得可以先用正则把先匹配出imgName = “图片名.gif”,然后再替换:
content = content.replaceAll("(.*?)src=\"(.*?)","$1src=\"../image/" + imgName);
content = content.replaceAll("(.*?)src=\"(.*?)","$1src=\"../image/" + imgName);
更多追问追答
追问
图片名好取。但是上面的正则只能在src路径最前方加东西。而不是去替换。我着实不懂。但是也没什么好办法了。
追答
content = content.replaceAll("src=\"(.*?)\"","src=\"../image/" + imgName + "\"");
这么写,我测试了,没问题的
展开全部
正则替换效率非常低下的,建议不要用。你可以把图片用自动增长的数字表示,到时候可以动态拼接这样比较简单
更多追问追答
追问
刚才用截取做过了。有个问题是,需要截取的字符串中包含很多src。而且src中图片格式也不一样,所以进行循环替换的时候,经常整篇替换成JPG或者gif了。
追答
你循环的方式不对吧,这个问题之前我也遇到过。是你的图片格式不统一还是替换后格式不统一。如果图片格式不统一那就判断下,针对不同格式的图片做相应处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询