The java regular expression gets and replaces the specified attribute value of the specified HTML tag

  • 2020-05-26 08:20:43
  • OfStack

Examples are as follows:


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 + "=['\"]?(.*?)['\"]?(\\s.*?)?>"; 
    p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
    m_image = p_image.matcher(source);
    while (m_image.find()) {
      img = m_image.group();
      Matcher m = Pattern.compile("href\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);
      while (m.find()) {
        String srcVal = m.group(1);
        if(srcVal.indexOf("/@tenant")>=0){
        	int idx = srcVal.indexOf("/@tenant");
        	StringBuffer temp = new StringBuffer();
        	String dstVal = temp.append(domain).append(srcVal.substring(idx+1)).toString();
        	source = source.replace(srcVal, dstVal);
        }
      }
    }
    return source;
  }

Related articles: