`
xxtianxiaxing
  • 浏览: 661546 次
  • 性别: 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;
    }

分享到:
评论

相关推荐

    java正则表达式过滤html标签

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

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

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

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    26.php HTML标签的清理 解析URL字符串.php 解析URL字符串 解析查询字符串.php 解析查询字符串 URL编码处理....

    经典JavaScript正则表达式实战

    正则表达式替换变量... 18 正则替换指定属性中的文本... 19 将阿拉伯数字替换为中文大写形式... 20 替换文本中的URL为链接... 21 从HTML代码段删除指定标签极其内容... 21 用正则给文本分段... 22 转换源代码中的...

    正则表达式,替换所有HTML标签的简单实例

    我自己写了一个正则表达式,&lt;(.|\n)+?&gt; 这个是替换所以HTML标签,非贪婪的,多行的。 如果我想替换得到所以非HTML标签, 我的代码就只能是这样,先找打HTML标签,然后将标签替换掉。 能不能直接找到非HTML标签...

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

    获取HTML字符串(包含标签),通过正则表达式替换HTML标签,输出替换后的字符串 2、实现JavaScript代码 function deleteTag() { var regx = /&lt;[^&gt;]*&gt;|&lt;\/[^&gt;]*&gt;/gm; var tagStr = $(#ul_li).html(); alert...

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

    下面小编就为大家带来一篇java正则表达式获取指定HTML标签的指定属性值且替换的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    正则表达式经典实例

    中文名: 正则表达式经典实例 原名: Regular Expression Cookbook 作者: (美)高瓦特斯(Goyvaerts,J.) (美)利维森(Levithan,S.)译者: 郭耀 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社书号: ...

    正则表达式经典实例.pdf

    中文名: 正则表达式经典实例 原名: Regular Expression Cookbook 作者: (美)高瓦特斯(Goyvaerts,J.) (美)利维森(Levithan,S.)译者: 郭耀 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社书号: 9787115228321发行...

    易语言泪闯天涯-正则表达式应用[取链接地址]源码,易语言泪闯天涯

    易语言彗星正则表达式模块例程源码,彗星正则表达式模块例程,创建,取文本,替换,搜索全部,取匹配数量,取匹配文本,取子匹配文本,清除HTML标签

    Python使用正则表达式过滤或替换HTML标签的方法详解

    主要介绍了Python使用正则表达式过滤或替换HTML标签的方法,简单介绍了Python正则相关语法并结合具体实例形式分析了Python基于正则表达式的HTML标签过滤与替换相关操作技巧,需要的朋友可以参考下

    正则表达式替换html元素属性的方法

    下面小编就为大家带来一篇正则表达式替换html元素属性的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    用正则表达式替换图片地址img标签

    如何替换一段HTML字符串中包含的所有img标签的src值?下面我们用正则解决这个问题

    asp 使用正则表达式替换word中的标签,转为纯文本

    从网上百度了若干清除word格式的正则,使用效果不甚理想,所以自己写了清除word格式的asp函数,能满足我们自己的使用需求。函数如下: 代码如下:function cleanWord(html) dim regEx set regEx=New RegExp regEx....

    Python正则获取、过滤或者替换HTML标签的方法

    本文实例介绍了Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法,具体内容如下 python正则表达式关键内容: python正则表达式转义符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或...

    asp常用的正则表达式实现字符串的替换

    去除html标签正则&lt;\/*[^&lt;&gt;]*&gt;Function LoseHtml(ContentStr) Dim ClsTempLoseStr,RegEx ClsTempLoseStr = Cstr(ContentStr) Set RegEx = New RegExp RegEx.Pattern = “&lt;\/*[^&lt;&gt;]*&gt;” RegEx....

    正则表达式re.sub替换不完整的问题及完整解决方案

    title: 正则表达式re.sub替换不完整的问题现象及其根本原因 toc: true comment: true date: 2018-08-27 21:48:22 tags: [“Python”, “正则表达式”] category: [“Python”] — 问题描述 问题的起因来自于一段...

Global site tag (gtag.js) - Google Analytics