java正则替换img标签中src值的方法

主要功能是: 替换html字符串中img标签src的值.

代码如下:

package com.junlenet.common.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * html处理工具类
 * @author huweijun
 * @date 2016年7月13日 下午7:25:09
 */
public class HtmlUtils {
	/**
	 * 替换指定标签的属性和值
	 * @param str 需要处理的字符串
	 * @param tag 标签名称
	 * @param tagAttrib 要替换的标签属性值
	 * @param startTag 新标签开始标记
	 * @param endTag 新标签结束标记
	 * @return
	 * @author huweijun
	 * @date 2016年7月13日 下午7:15:32
	 */
	public static String replaceHtmlTag(String str, String tag, String tagAttrib, String startTag, String endTag) {
		String regxpForTag = "<\\s*" + tag + "\\s+([^>]*)\\s*" ;
		String regxpForTagAttrib = tagAttrib + "=\\s*\"([^\"]+)\"" ;
		Pattern patternForTag = Pattern.compile (regxpForTag,Pattern. CASE_INSENSITIVE );
		Pattern patternForAttrib = Pattern.compile (regxpForTagAttrib,Pattern. CASE_INSENSITIVE );
		Matcher matcherForTag = patternForTag.matcher(str);
		StringBuffer sb = new StringBuffer();
		boolean result = matcherForTag.find();
		while (result) {
			StringBuffer sbreplace = new StringBuffer( "<"+tag+" ");
		 Matcher matcherForAttrib = patternForAttrib.matcher(matcherForTag.group(1));
  	if (matcherForAttrib.find()) {
  		String attributeStr = matcherForAttrib.group(1);
  		matcherForAttrib.appendReplacement(sbreplace, startTag + attributeStr + endTag);
  	}
  	matcherForAttrib.appendTail(sbreplace);
  	matcherForTag.appendReplacement(sb, sbreplace.toString());
  	result = matcherForTag.find();
		}
		matcherForTag.appendTail(sb);
		return sb.toString();
	}

 public static void main(String[] args) {
 	StringBuffer content = new StringBuffer();
 	content.append("<ul class=\"imgBox\"><li><img id=\"160424\" src=\"uploads/allimg/160424/1-160424120T1-50.jpg\" class=\"src_class\"></li>");
 	content.append("<li><img id=\"150628\" src=\"uploads/allimg/150628/1-15062Q12247.jpg\" class=\"src_class\"></li></ul>");
  System.out.println("原始字符串为:"+content.toString());
  String newStr = replaceHtmlTag(content.toString(), "img", "src", "src=\"http://junlenet.com/", "\"");
  System.out.println("  替换后为:"+newStr);
 } 

}

以上这篇java正则替换img标签中src值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • js正则匹配出所有图片及图片地址src的方法

    本文实例讲述了js正则匹配出所有图片及图片地址src的方法.分享给大家供大家参考.具体分析如下: 有很多时候我们需要用到文章里面的图片,而且主要是用到它的图片地址,这个时候我们需要通过正则匹配出图片标签,然后做到我们需要的数据 平时也没怎么用正则,一不学就忘,最近项目需要,然后又去goole了,好乱!一搜一大堆,也不是我想要的,最后把自己留一个已被后用: 实现:通过js正则匹配出所有图片及所有图片地址src. 思路:1.匹配出图片img标签(即匹配出所有图片),过滤其他不需要的字符 从匹配出来的

  • java正则表达式获取指定HTML标签的指定属性值且替换的方法

    实例如下: public static String repDomain(String source, String domain, String element, String attr) { String img = ""; Pattern p_image; Matcher m_image; String regEx_img = "<" + element + "[^<>]*?\\s" + attr + "=['\

  • java正则替换img标签中src值的方法

    主要功能是: 替换html字符串中img标签src的值. 代码如下: package com.junlenet.common.util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * html处理工具类 * @author huweijun * @date 2016年7月13日 下午7:25:09 */ public class HtmlUtils { /** * 替换指定标签的属性和值 * @para

  • java使用Hashtable过滤数组中重复值的方法

    本文实例讲述了java使用Hashtable过滤数组中重复值的方法.分享给大家供大家参考,具体如下: package org.eline.core.web.support; import java.util.Hashtable; /***************************** * * @author zdw * */ public class ObjectFilter { public static void main(String[] args) { // String 测试 S

  • Java HtmlParse提取标签中的值操作

    ☆代码示例: 代码块语法遵循标准markdown代码,例如: package cas; import org.htmlparser.Node; import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparser.filters.StringFilter; import org.htmlparser.filters.TagNameFilter; import org.htmlparser.tag

  • java正则替换sql中的参数实例代码

    目录 前言 要求: 分析: 代码: 测试: 总结: 前言 在处理sql参数的时候,替换圆括号里面只处理了一种情况.而没有从整体上进行处理!!! 这是一个思考问题上严重的偏向. 考虑问题时候,要先从整体开始考虑,逐步分解,再细分到局部! 要求: 替换sql里面的参数: SELECT a.table_id, a.table_title, a.table_name, a.table_serial, b.STAFF_NAME , b.REGION_NAME, b.operatingsystem, b.r

  • Java在利用反射条件下替换英文字母中的值

    Java在利用反射条件下替换英文字母中的值 (1)创建两个Class: ReflectTest类如下: package cn.itcast.day01; import java.lang.reflect.Constructor; import java.lang.reflect.Field; public class ReflectTest { public static void main(String[] args) throws Exception { changeStringValue(

  • Java 根据XPATH批量替换XML节点中的值

    测试环境: JDK 1.8.0_25 代码实操: message.xml文件 <Request service="SALE_ORDER_SERVICE" lang="zh-CN"> <Head> <AccessCode>xxxxxxxxxx12Ur8v6qkYAaOf</AccessCode> <Checkword>xxxxxxxxxxkmPif7Z35UEJjrR</Checkword> &l

  • JavaScript正则替换HTML标签功能示例

    本文实例讲述了JavaScript正则替换HTML标签功能.分享给大家供大家参考,具体如下: 1.说明 获取HTML字符串(包含标签),通过正则表达式替换HTML标签,输出替换后的字符串 2.实现JavaScript代码 function deleteTag() { var regx = /<[^>]*>|<\/[^>]*>/gm; var tagStr = $("#ul_li").html(); alert("替换之前的字符串:"

  • Java基于正则表达式获取指定HTML标签指定属性值的方法

    本文实例讲述了Java基于正则表达式获取指定HTML标签指定属性值的方法.分享给大家供大家参考,具体如下: 有时可能会有这样的需求,从HTML页面获取指定标签的指定属性值,可以通过第三方库解析来获取,但是这样相对比较麻烦! 如果使用正则表达式,那么就变得简单了.代码如下: package com.mmq.regex; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import

  • js改变embed标签src值的方法

    本文实例讲述了js改变embed标签src值的方法.分享给大家供大家参考.具体分析如下: 今天有一需求,一堆视频,一堆链接,点击相关的链接,在本页打开相关的视频. 第一想法,很简单么,直接把src值改成点击的那个的href值就可以了. 试了下,发现这样不行,视频该怎么放还是怎么放,永远是刚打开那个. 第二想法,给embed外面加个标签,把里面内容清空,再写进去,这样总可以了吧. 试了下,和上面一样,依旧不行. 又试了许多类似方法,还是不行. 最后,想的,把embed标签隐藏(display:no

  • Java替换int数组中重复数据的方法示例

    本文实例讲述了Java替换int数组中重复数据的方法.分享给大家供大家参考,具体如下: package test; import java.util.HashSet; public class TestList { /** * 根据传递过来的参数过滤掉重复数据 * @param number:需要过滤掉的数据 * @return:筛选好的新数组 */ public static int[] Filter(int[] number){ HashSet<Integer> hs=new HashSe

随机推荐