国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java使用正則表達式過濾html標簽

2019-11-26 13:32:46
字體:
來源:轉載
供稿:網友

前段時間開發的時候要讀取一篇文章的簡介內容(也就是前200個字符),使用了隱藏字段,可能有人就要問了,那后臺也是可以截取字符的啊,那是因為編輯器里面包含了html標簽,所以后臺就需要處理html標簽的正則表達式,前些天上網搜了下,發現有人寫好的一個類,給大家共享下,不要閑小弟落伍了...

import java.util.regex.Matcher; import java.util.regex.Pattern;  /**  * <p>  * Title: HTML相關的正則表達式工具類  * </p>  * <p>  * Description: 包括過濾HTML標記,轉換HTML標記,替換特定HTML標記  * </p>  * <p>  * Copyright: Copyright (c) 2006  * </p>  *  * @author hejian  * @version 1.0  * @createtime 2006-10-16  */  public class HtmlRegexpUtil {  private final static String regxpForHtml = "<([^>]*)>"; // 過濾所有以<開頭以>結尾的標簽   private final static String regxpForImgTag = "<//s*img//s+([^>]*)//s*>"; // 找出IMG標簽   private final static String regxpForImaTagSrcAttrib = "src=/"([^/"]+)/""; // 找出IMG標簽的SRC屬性   /**   *   */  public HtmlRegexpUtil() {   // TODO Auto-generated constructor stub  }   /**   *   * 基本功能:替換標記以正常顯示   * <p>   *   * @param input   * @return String   */  public String replaceTag(String input) {   if (!hasSpecialChars(input)) {    return input;   }   StringBuffer filtered = new StringBuffer(input.length());   char c;   for (int i = 0; i <= input.length() - 1; i++) {    c = input.charAt(i);    switch (c) {    case '<':     filtered.append("<");     break;    case '>':     filtered.append(">");     break;    case '"':     filtered.append(""");     break;    case '&':     filtered.append("&");     break;    default:     filtered.append(c);    }    }   return (filtered.toString());  }   /**   *   * 基本功能:判斷標記是否存在   * <p>   *   * @param input   * @return boolean   */  public boolean hasSpecialChars(String input) {   boolean flag = false;   if ((input != null) && (input.length() > 0)) {    char c;    for (int i = 0; i <= input.length() - 1; i++) {     c = input.charAt(i);     switch (c) {     case '>':      flag = true;      break;     case '<':      flag = true;      break;     case '"':      flag = true;      break;     case '&':      flag = true;      break;     }    }   }   return flag;  }   /**   *   * 基本功能:過濾所有以"<"開頭以">"結尾的標簽   * <p>   *   * @param str   * @return String   */  public static String filterHtml(String str) {   Pattern pattern = Pattern.compile(regxpForHtml);   Matcher matcher = pattern.matcher(str);   StringBuffer sb = new StringBuffer();   boolean result1 = matcher.find();   while (result1) {    matcher.appendReplacement(sb, "");    result1 = matcher.find();   }   matcher.appendTail(sb);   return sb.toString();  }   /**   *   * 基本功能:過濾指定標簽   * <p>   *   * @param str   * @param tag   *   指定標簽   * @return String   */  public static String fiterHtmlTag(String str, String tag) {   String regxp = "<//s*" + tag + "http://s+([^>]*)//s*>";   Pattern pattern = Pattern.compile(regxp);   Matcher matcher = pattern.matcher(str);   StringBuffer sb = new StringBuffer();   boolean result1 = matcher.find();   while (result1) {    matcher.appendReplacement(sb, "");    result1 = matcher.find();   }   matcher.appendTail(sb);   return sb.toString();  }   /**   *   * 基本功能:替換指定的標簽   * <p>   *   * @param str   * @param beforeTag   *   要替換的標簽   * @param tagAttrib   *   要替換的標簽屬性值   * @param startTag   *   新標簽開始標記   * @param endTag   *   新標簽結束標記   * @return String   * @如:替換img標簽的src屬性值為[img]屬性值[/img]   */  public static String replaceHtmlTag(String str, String beforeTag,    String tagAttrib, String startTag, String endTag) {   String regxpForTag = "<//s*" + beforeTag + "http://s+([^>]*)//s*>";   String regxpForTagAttrib = tagAttrib + "=/"([^/"]+)/"";   Pattern patternForTag = Pattern.compile(regxpForTag);   Pattern patternForAttrib = Pattern.compile(regxpForTagAttrib);   Matcher matcherForTag = patternForTag.matcher(str);   StringBuffer sb = new StringBuffer();   boolean result = matcherForTag.find();   while (result) {    StringBuffer sbreplace = new StringBuffer();    Matcher matcherForAttrib = patternForAttrib.matcher(matcherForTag      .group(1));    if (matcherForAttrib.find()) {     matcherForAttrib.appendReplacement(sbreplace, startTag       + matcherForAttrib.group(1) + endTag);    }    matcherForTag.appendReplacement(sb, sbreplace.toString());    result = matcherForTag.find();   }   matcherForTag.appendTail(sb);   return sb.toString();  } } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 虞城县| 綦江县| 壤塘县| 阳朔县| 永嘉县| 禹城市| 五指山市| 射阳县| 隆德县| 自贡市| 江华| 安塞县| 湾仔区| 泽库县| 甘肃省| 麻栗坡县| 潼关县| 临朐县| 图片| 贡觉县| 饶阳县| 邓州市| 南郑县| 阜宁县| 龙州县| 武山县| 湾仔区| 河北区| 乌兰察布市| 南皮县| 佳木斯市| 云阳县| 玉山县| 宁晋县| 德保县| 广灵县| 赤城县| 家居| 石楼县| 广平县| 台南县|