html 正则表达式替换标签,正则表达式替换 html 标签

/**

* 此方法描述的是:字符串的替换

* @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;

}

/**

* 此方法描述的是:使用正则替换字符串
tt中含有的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 = "

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("",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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值