需求:由于系统切换,要求将存在数据库中的网页内容中的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> </p>"+ "</p><p><img title=\"10010003\" src=\"/files/post/10010003.gif\" width=\"600\" height=\"300\" /><p> </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
相关推荐
Java 正则替换 img 标签中 src 值的方法 正则表达式是 Java 中非常重要的一种技术,广泛应用于字符串处理、数据提取、格式验证等领域。在 HTML 处理中,正则替换 img 标签中 src 值的方法尤其重要,本文就将介绍一...
java代码,从image标签中正则匹配取出src标签的内容,java代码,从image标签中正则匹配取出src标签的内容
使用这个正则表达式,我们可以用编程语言如JavaScript、Python等进行匹配操作,找出所有`<img>`标签的`src`值。例如,在JavaScript中,可以使用`match()`函数: ```javascript const html = "HTML文本"; const ...
针对替换img标签src属性的问题,我们可以创建一个正则表达式来匹配img标签及其src属性。以下是一个示例: ```javascript const content = '<img src="//...
在这个场景下,我们讨论的是如何使用正则表达式来处理HTML中的`img`标签,特别是提取或修改其属性,如`src`、`width`和`height`等。 首先,我们关注的是如何提取`img`标签中的属性。例如,如果我们有一个包含HTML...
本篇文章将深入讲解如何使用正则表达式来替换HTML字符串中的img标签的src值。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式匹配语言,用于在文本中查找、替换或提取符合...
在本文中,我们将深入探讨如何使用PHP通过正则表达式批量替换HTML中的`<img>`标签的`src`属性,从而实现获取缩略图的功能。这个功能对于网站内容的优化和资源管理非常重要,特别是当需要统一处理大量图片时。 首先...
要提取`<img>`标签的`src`属性,我们需要构造一个能匹配该模式的正则表达式。一个简单的正则表达式可能如下: ```regex <img\s+src=["']?([^"']+)["']? ``` 这个正则表达式的解释如下: - `<img>`:匹配`<img`这个...
本篇文章将对使用PHP进行正则表达式提取或替换img标记中的属性进行详细解析。 首先,要使用正则表达式提取或替换属性,我们需要理解正则表达式的相关语法规则。在PHP中,可以通过preg_match函数实现正则表达式的...
在本主题“PHP 正则获取IMG各属性值”中,我们将深入探讨如何利用PHP的正则表达式功能来解析HTML代码,特别是针对`<img>`标签,提取其各个属性的值,如`src`、`alt`、`width`和`height`等。 首先,我们需要理解HTML...
src\s*=\s*`,`src`属性的匹配,以及`img`标签的结束`>`。这里使用了两个反斜杠`\\`来转义双引号`"`,因为双引号在正则表达式中有特殊含义。 5. 使用在线正则表达式工具:本例中还提到了两个在线工具,一个用于测试...
regxpForImaTagSrcAttrib是一个正则表达式,用于匹配IMG标签的SRC属性。 HtmlRegexpUtil类提供了多种方法来过滤html标签,包括过滤所有以"开头以">"结尾的标签、找出IMG标签、找出IMG标签的SRC属性等。这些方法...
本文将介绍如何使用Java正则表达式来过滤HTML标签,包括过滤所有以“<”开头以“>”结尾的标签、提取IMG标签的SRC属性等。 过滤所有以“<”开头以“>”结尾的标签 在HtmlRegexpUtil类中,我们定义了一个静态变量...
### EditPlus正则替换:将图片UBB格式转换为HTML img标签 在互联网技术领域,尤其是在网站开发与维护过程中,经常需要对大量的文本内容进行格式调整或转换。其中一种常见的需求就是将论坛或博客系统中使用的UBB...
- 提取src属性使用的正则表达式是`/<img.+src=\"?(.+\.(jpg|gif|bmp|png))\"?.+>/i`。 在这个表达式中,`src=\"?` 匹配src属性的开始和可选的引号,`(.+\.(jpg|gif|bmp|png))` 捕获文件名和扩展名,最后`.+` 匹配...
// 使用replaceAll函数替换所有匹配的<img>标签为"" return matcher.replaceAll(""); } ``` 在上述代码中,`<img\\s+[^>]*>`是正则表达式,用于匹配任何形式的IMG标签。`\\s+`匹配一个或多个空格,`[^>]*`匹配除`...
PHP正则替换处理HTML页面的方法主要涉及到在PHP中使用正则表达式对HTML文档内容进行查找和替换操作,以达到修改页面元素属性的目的。HTML页面是由各种标签组成的,这些标签在正则表达式中需要特别处理,因为标签的...
例如,`regxpForHtml`用于匹配任何以小于号`开头且以大于号`>`结尾的HTML标签,`regxpForImgTag`用于匹配`<img>`标签,并且可以提取其中的属性,`regxpForImaTagSrcAttrib`则是用于提取`<img>`标签的`src`属性。...