需求:由于系统切换,要求将存在数据库中的网页内容中的img标签的src属性进行修补,举例:

content="<p><img title=\"122444234\" src=\"/files/post/122444234.jpg\"/><p>其他字符";

要求替换后为:

content="<p><img title=\"122444234\" src=\"http://xxx.xxx.com/files/post/122444234_500.jpg\" /><p>其他字符";

使用正则即可解决,代码如下(ApiUtil.java静态方法)

/*** 将img标签中的src进行二次包装* @param content 内容* @param replaceHttp 需要在src中加入的域名* @param size 需要在src中将文件名加上_size* @return*/public static String repairContent(String content,String replaceHttp,int size){String patternStr="<img\\s*([^>]*)\\s*src=\\\"(.*?)\\\"\\s*([^>]*)>";Pattern pattern = Pattern.compile(patternStr,Pattern.CASE_INSENSITIVE);Matcher matcher = pattern.matcher(content);String result = content;while(matcher.find()) {String src = matcher.group(2);logger.debug("pattern string:"+src);String replaceSrc = "";if(src.lastIndexOf(".")>0){replaceSrc = src.substring(0,src.lastIndexOf("."))+"_"+size+src.substring(src.lastIndexOf("."));}if(!src.startsWith("http://")&&!src.startsWith("https://")){replaceSrc = replaceHttp + replaceSrc;}result = result.replaceAll(src,replaceSrc);} logger.debug(" content == " +content);logger.debug(" result == " + result);return result;}

测试代码:

public static void main(String[] args) {String content = "<p><img  title=\"10010001\" src=\"/files/post/10010001.gif\" width=\"200\" height=\"300\" />" +"</p><p><img  title=\"10010002\" src=\"/files/post/10010002.gif\" width=\"500\" height=\"300\" /><p>&nbsp;</p>"+"</p><p><img  title=\"10010003\" src=\"/files/post/10010003.gif\" width=\"600\" height=\"300\" /><p>&nbsp;</p>";String replaceHttp = "http://www.baidu.com";int size = 500;String result = ApiUtil.repairContent(content, replaceHttp, size);System.out.println(result);}

关键在于正则表达式:<img\\s*([^>]*)\\s*src=\\\"(.*?)\\\"\\s*([^>]*)>

特别是 ([^>]*) 不能用.*代替,否则只会从<img匹配到字符串最后一个">"符号为止,如果每个src的内容不一样,就只会替换最后一个src

参考:http://hi.baidu.com/yanghuichi520/item/69e12ede3f7c8a1ee0f46fab

原文地址:http://it.5yun.com.cn/html/y2015/m03/112.html

使用正则替换img标签的src属性相关推荐

  1. 获取标签的src属性兼容性

    获取节点如script标签的src属性时,针对非IE6,IE7可以直接使用src属性,但在IE6-7中存在问题,可以借助getAttribute方法 getAttribute(attr,iflag) ...

  2. <script>标签通过src属性调用js文件

    1.js文件内代码的编写 js文件内,js代码的写法和script标签内相同,可以理解为script标签被隐藏而已,一切照旧即可. 2.js文件的调用 使用script标签的src属性即可,Scrip ...

  3. HTML中img标签的src属性为绝对路径时,在IE中图片可显示,在firefox中不行

    HTML中img标签的src属性为绝对路径时,在IE中图片可显示,在firefox中不行 下图,src中为图片的绝对路径,此时在IE浏览器中图片可显示出来,firefox浏览器中图片不能显示出来 代码 ...

  4. 获取a标签的src属性

    ##获取a标签的src属性 <!DOCTYPE html> <html lang="en"> <head><meta charset=&q ...

  5. 富文本上传的内容中img标签的src属性丢失

    在一次项目上线后,突然发现后台系统的上传图片功能出了问题.是要发布一篇文章,文章内容是以富文本的形式保存的,上传图片后发现图片显示不出来,看数据库保存的字段发现img标签没有src属性,当时就奇了怪了 ...

  6. img标签地址src路径拼接_img标签的src属性的用法是什么?

    首先我们来看看img标签的定义: 图片也是网页中最常见的html元素,而且是相当重要的一部分.在html网页中,图像由标签定义,是空html标签或说是单标签,它只包含属性,没有闭合标签. img标签的 ...

  7. php正则 替换div标签内容,PHP 正则匹配标签内容,根据字符串长度进行替换

    写了一个函数 /** * @param string $html html文本数据 * @param array $rule 处理的规则, [ '需要处理的标签' => 限制的字符数量 ] * ...

  8. python爬取图片链接标签的src属性值_python爬取图片遇见src乱码: data:image/png;base64...

    python爬取图片遇见src乱码: data:image/png;base64 向爬取自己喜欢的图片,但是在爬取下来的代码当中图片的src会出现乱码的情况:data:image/png;base64 ...

  9. html frame 的src属性,iframe标签的src属性

    jQuery怎么给iframe的src赋值 给iframe src赋值,代码如下: 特别注意: 1.上述jquery代码不能缺少 $(document).ready(); ,否则iframe src赋 ...

最新文章

  1. python可以做什么 知乎-python能做什么知乎
  2. 基于android模拟led发光,LED通知灯模拟app
  3. 如何采集指定年份的poi_房价关键影响因素分析:从数据采集到建模全过程
  4. java jsch session 多久会断开_What?纯Java居然能实现Xshell!
  5. linux查看iozone安装目录,使用IOzone测试磁盘性能
  6. 山东单招计算机什么学校好考,2021山东单招最好的公办学校有哪些 山东单招好考的公办学校一览...
  7. sql语句优化的几种方法
  8. Abaqus2019+VS2019+Fortran子程序安装关联全过程亲测有效
  9. office插件开发_进一步拓展wps办公软件的功能——安装vba开发环境插件
  10. 企业海量数据搜索服务器架构图
  11. 鬼谷八荒先天气运修改器
  12. go语言爬虫 - TapTap用户都喜欢些什么游戏
  13. go语言命令入门之env(操作环境信息)
  14. 计算机类专业都有什么区别?
  15. 申宝股票-三大指数震荡下行
  16. Ubuntu 10.10安装配置指南Ubuntu 11.10 图形安装教程
  17. c语言规定 标识符由,C语言规定标识符只能由字母、数字和小数点三种字符组成。()...
  18. 数据论《西游记》关系网:猪八戒最主动喜欢别人
  19. 计算机网络基础知识点快速复习手册
  20. 电脑有网却打不开网页(能ping通)

热门文章

  1. 图解hadoop的MR计算流程
  2. 示范效应显现,去中心化钱包iBitcome率先接入WHC
  3. 中电金信Gien享汇・大数据专题|金融创新应用场景下的数据资产管理实践
  4. Java常用类使用总结,netty实战百度网盘
  5. 修改mysql初始密码时报错:ERROR 1064 (42000): You have an error in your SQL syntax
  6. 深入解析 multipart/form-data
  7. Windows 安装Kali等Linux子系统
  8. 【速记】openwrt - 编译、刷固件(资料整理)
  9. 根据身份证号码计算星座
  10. 图解组织效能及人均效能指标大全和计算方法