`
xxtianxiaxing
  • 浏览: 704815 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

正则表达式替换 html 标签

    博客分类:
  • web
阅读更多

 /**
     * 此方法描述的是:字符串的替换
     * @param string	需要替换的字符串
     * @param oldString	被替换的字符串
     * @param newString	新字符串
     * @author 作者 E-mail: wangxiongdx@163.com
     * @version 创建时间:2009-9-13 下午01:34:23
     */
     public static String replace(String string, String oldString, String newString) {
         if (string == null) {
             return null;
         }
         int i = 0;	//初始位置,从0开始
         
         //从指定位置开始查找oldString在string中的起始位置
         if ((i = string.indexOf(oldString, i)) >= 0) {
             // Use char []'s, as they are more efficient to deal with.
             char[] string2 = string.toCharArray();
             char[] newString2 = newString.toCharArray();
             int oLength = oldString.length();
             //StringBuilder 简易替换 比 StringBuffer 要快
             StringBuilder buf = new StringBuilder(string2.length);
             //string2从起始位置到  i 的部分... 继续追加新串 newString2
             buf.append(string2, 0, i).append(newString2);
             //string中旧字符串的结束位置
             i += oLength;
             int j = i;
             // Replace all remaining instances of oldString with newString.
             //用新串替换所有出现的旧串
             while ((i = string.indexOf(oldString, i)) > 0) {
                 buf.append(string2, j, i - j).append(newString2);
                 i += oLength;
                 j = i;
             }
             //用新串替换后的string2中截获最后一次出现新串的结束位置到结尾
             buf.append(string2, j, string2.length - j);
             return buf.toString();
         }
         return string;
     }
    
     /**
      * 此方法描述的是:使用正则替换字符串<br>tt</br>中含有的html标签和js标签
      * @param string	传入字符串
      * @author 作者 E-mail: wangxiongdx@163.com
      * @version 创建时间:2009-9-29 下午03:34:23
      */
    public static String stripHTMLTags(String tt){
    	//匹配所有带字母的标签(包括js标签)
    	String tag = "</?[a-zA-Z]*([\\s]*([A-Za-z]+[\\s]?=[\\s]?(\"|')?[\\w]+(\"|')?))*>";
    	//匹配js标签
    	String javascriptTag = "<script[\\s]*(.)*>";
    	Pattern p = Pattern.compile(tag);
		//起始
    	int index = 0;
    	//结束
		int last;
		while((index = tt.indexOf("<",index)) != -1){
			if((last = tt.indexOf(">",index)) != -1){
				//目标字符串
				String oldString = tt.substring(index, last+1);
				Matcher m = p.matcher(oldString);
				//首先判断是否为js标签
				if(Pattern.compile(javascriptTag).matcher(oldString).matches()){
					if((last = tt.indexOf("</script>",last)) != -1){
						tt = replace(tt, tt.substring(index, last+9), "");
					}
				//再判断是否为html标签(html正则考虑去除js标签正则???后补)
				}else if(m.matches()){
					tt = replace(tt, oldString, "");
				}
			}else{
				break;
			}
		}
		return tt;
    }

分享到:
评论

相关推荐

    易语言正则表达式文本替换

    例如,"子程序_正则文本替换"可能就是一个易语言中用于执行正则表达式替换的子程序,它接收输入的文本、正则表达式模式和替换字符串,然后返回经过替换操作的新文本。 1. **正则表达式基础** - **元字符**:如`.`...

    java正则表达式过滤html标签

    java正则表达式过滤html标签 java正则表达式过滤html标签是指使用java语言中的正则表达式来过滤html标签的操作。HtmlRegexpUtil这个工具类提供了多种过滤html标签的方法,包括过滤所有以"开头以"&gt;"结尾的标签、找出...

    JavaScript正则表达式匹配 div style标签

    正则表达式是处理字符串的强大工具,它允许我们对字符串进行匹配、搜索、替换等操作。在JavaScript中,正则表达式以斜杠“/”包围的形式出现,例如`/pattern/flags`。在处理HTML文档时,经常会遇到需要从HTML代码中...

    JS正则表达式的使用以video标签为例

    使用JS正则表达式,选取video元素的src属性的值,利用jQuery选取元素

    正则表达式大全.docx

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换操作。它由特殊字符(称为“元字符”)和普通字符组成,能够灵活地定义要查找的模式。以下是一些常见的正则表达式模式及其用途: 1. ...

    正则表达式大全 - 收集的最常用正则表达式

    /&gt;` - 这个正则表达式用于找出HTML文档中的标签,但不适用于复杂的嵌套标记。 5. 匹配首尾空白字符:`^s*|s*$` - 该正则表达式用于删除字符串开始或结束的空格、制表符等空白字符。 6. 匹配Email地址:`w+([-+.]w...

    常用正则表达式大全.txt

    通过定义一组规则来识别文本中的特定模式,正则表达式被广泛应用于各种场景,如数据验证、搜索替换等。 ### 数字验证 1. **纯数字验证**:只允许输入纯数字。 - 正则表达式:`^[0-9]*$` - 示例:`12345` 2. **...

    精通正则表达式(第三版)简体中文版

    3. **文本替换**:基于模式对文本进行替换操作,如去除HTML标签、转换大小写等。 4. **数据提取**:从复杂的数据中提取所需的信息,如从网页中抓取特定内容。 5. **日志分析**:从系统日志中提取关键信息进行监控和...

    正则表达式处理html文本例子

    在处理HTML文本时,正则表达式尤其有用,可以用来查找、替换或提取HTML标签及其内容。以下是对这个主题的详细阐述: 1. **基本正则表达式概念**:正则表达式是由字符和特殊符号组成的字符串,它们定义了一个模式,...

    正则表达式清除html标签

    ### 正则表达式清除HTML标签 在.NET开发过程中,我们经常会遇到需要处理HTML文档的情况。其中一项常见的任务就是从文本中移除HTML标签。这不仅有助于提高数据的安全性(例如防止XSS攻击),还能方便地提取纯文本...

    源码(精通正则表达式&实战正则表达式)

    在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,用于匹配、查找、替换或提取字符串中的特定模式。本资源“源码(精通正则表达式&实战正则表达式)”专注于JavaScript环境下的正则...

    delphi xe 10 正则表达式

    3. **去除HTML标签**:使用 `&lt;[^&gt;]*&gt;` 可以找到并替换掉文本中的HTML标签。 4. **数字格式化**:将连续的数字字符替换为逗号分隔的格式,如 `(\d{1,3}(?=(\d{3})+(?!\d)))` 可以实现这个功能。 六、注意事项 - ...

    js_正则表达式全攻略

    正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助开发者进行复杂的字符串搜索和替换。在JavaScript中,正则表达式被广泛应用于字符串操作、表单验证、数据提取等多种场景,其简洁性和灵活性使其...

    Java正则表达式过滤html标签1[参考].pdf

    在HTML标记处理中,正则表达式可以用来过滤、提取和替换HTML标签。 本文将介绍如何使用Java正则表达式来过滤HTML标签,包括过滤所有以“&lt;”开头以“&gt;”结尾的标签、提取IMG标签的SRC属性等。 过滤所有以“&lt;”开头...

    正则表达式 Java 判断字串是否合理

    正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,通过`java.util.regex`包提供了对正则表达式的支持。 ### 2. 邮箱地址验证 在实际应用中,经常需要...

    正则表达式+xml

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串模式。XML则是一种用于存储和交换结构化数据的标记语言。 正则表达式的知识点包括: 1. **基础语法**:正则表达式由各种字符和特殊符号组成...

    正则表达式的妙用

    正则表达式,全称Regular Expression,是一种强大的文本处理工具,尤其在数据挖掘、文本匹配、搜索替换等方面有着广泛的应用。在IT行业中,熟练掌握正则表达式是提高工作效率的关键技能之一,尤其对于程序员和数据...

    正则表达式列举 代码 项目中直接使用

    正则表达式是一种强大的文本处理工具,用于模式匹配、搜索、替换等操作,在软件开发、数据处理、网络爬虫等领域有着广泛的应用。在项目中直接使用正则表达式可以极大地提高代码的效率和可读性。以下是对给定文件中的...

Global site tag (gtag.js) - Google Analytics