- 浏览: 705877 次
- 性别:
- 来自: 福建
文章分类
最新评论
-
羽翼的心动:
同意2楼的说法,我们公司之前一个项目用过pageoffice, ...
poi导出excel文件工具类 -
贝塔ZQ:
poi实现导出excel文件,蛮麻烦的,用pageoffice ...
poi导出excel文件工具类 -
aishiqiang:
为什么我的项目配置好证书后,每次使用jenkinst自动构建包 ...
关于使用https协议,cas认证PKIX path building failed错误解决方法 -
zhongmin2012:
谢谢分享,正在想看
AST解析java源文件相关jar包 -
mybestroy1108:
感谢分享!受益良多!
Jboss7 JMS demo
前段时间开发的时候要读取一篇文章的简介内容(也就是前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 + "\\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 + "\\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(); } }
评论
3 楼
liu400liu
2013-07-31
<script type="text/javascript" >alert("test")</script>
2 楼
lym6520
2009-05-08
过滤所有以"<"开头以">"结尾的标签
过滤html标签的filterHtml(String str)方法有一个显而易见的bug,如果是"<快乐吗?>"这个字符串,也会过滤掉。
要说bug也是,不过不是说了吗,是过滤所有以"<"开头以">"结尾的标签
sharong 写道
过滤html标签的filterHtml(String str)方法有一个显而易见的bug,如果是"<快乐吗?>"这个字符串,也会过滤掉。
要说bug也是,不过不是说了吗,是过滤所有以"<"开头以">"结尾的标签
1 楼
sharong
2009-05-07
过滤html标签的filterHtml(String str)方法有一个显而易见的bug,如果是"<快乐吗?>"这个字符串,也会过滤掉。
发表评论
-
linux 定时任务检查服务器是否正常
2014-02-28 22:21 4700通过curl命令判断url返回状态,以此来确定服务是否正常: ... -
poi导出excel文件工具类
2014-01-20 21:54 7262package m.utils.excel; imp ... -
课程设计--家庭财务管理系统
2012-04-14 16:58 1892记得第一次接触FLEX3是在毕业那一年,那时已经工作了大半年了 ... -
what's MINA?
2011-03-15 23:09 1367what's MINA? Apache MINA is a ... -
如何避免吧.svn文件编译到classes目录下
2011-01-25 09:47 0SVN是一个很好用的版本管理根据,但有一个很烦人的问题用ecl ... -
Java 异常处理及其应用
2010-10-26 12:46 1374Java 异常处理的忌讳引 ... -
AST解析java源文件相关jar包
2010-08-26 14:57 10557今天有个处理需要涉及到java源文件的解析,baidu、goo ... -
使用ejb3配置开发SessionBean
2010-08-25 17:06 0Session Bean除了可以使用注释来发布外,也可以使用相 ... -
oracle clob类型处理
2010-08-23 11:13 0oracle clob类型处理 update clob字段放 ... -
ibatis 事务回滚操作
2010-08-11 13:54 0public StateBean deleteTask(M ... -
设计模式 之 “适配器模式[Adapter Pattern]”
2010-07-15 08:58 1115适配器模式[Adapter Pattern]类图 适配器模 ... -
帮朋友写的个关键字搜索器
2010-07-14 10:33 1443上礼拜一朋友让我帮忙写个小软件,需求大概是这样的:一个 ... -
实现xml到JavaBean的转换
2010-05-15 22:08 1666今天心血来潮,想实现xml到JavaBean的实现,baidu ... -
使用apache mail发送邮件错误解决办法
2010-04-28 16:29 8096今天在写发送邮件的程序时发现了以下两个些错误,贴出来跟大家分享 ... -
jbpm4部署异常
2010-03-15 10:11 0java.lang.LinkageError: loader ... -
spring 单元测试:java.lang.SecurityException
2010-03-05 20:06 0spring 单元测试抛出: java.lang.Secur ... -
eclipse安装spket插件(javascript工具)
2009-12-18 15:29 0eclipse安装spket插件(javascript工具) ... -
使用java excel api 导出数据到excel
2009-12-11 16:06 0找到一个java操作excel的api,连接地址http:// ... -
java int转byte[]
2009-11-05 13:39 0/** * int转byte[] * @pa ... -
附件下载
2009-10-28 14:35 0/** * 下载 * @param reques ...
相关推荐
java正则表达式过滤html标签 java正则表达式过滤html标签是指使用java语言中的正则表达式来过滤html标签的操作。HtmlRegexpUtil这个工具类提供了多种过滤html标签的方法,包括过滤所有以"开头以">"结尾的标签、找出...
Java正则表达式过滤html标签 Java正则表达式是一种强大的文本处理工具,可以用来过滤、提取和替换文本中的特定模式。在HTML标记处理中,正则表达式可以用来过滤、提取和替换HTML标签。 本文将介绍如何使用Java正则...
根据给定的文件信息,我们可以总结出以下关于Java正则表达式的重要知识点: ### 1. 正则表达式简介 正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,...
标题“java使用正则表达式过滤html标签”意味着文章的主题是关于如何使用Java编程语言结合正则表达式来清除或处理HTML标签,这是在处理Web开发中经常会遇到的需求。描述中提到,文章将介绍这一技术,并希望读者通过...
Java正则表达式教程是为那些想要深入了解Java编程语言中正则表达式使用方法的初学者准备的。正则表达式(Regular Expression)是一种强大的文本处理工具,它用于模式匹配、搜索、替换等操作,广泛应用于字符串处理和...
这些正则表达式都是日常编程中常用的基础模式,它们在数据验证、搜索、过滤等任务中发挥着关键作用。理解并掌握这些表达式,对于提高开发效率和代码质量至关重要。在实际应用中,根据具体需求,可能需要对这些基础...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于Perl风格的正则表达式,可以用来进行文本的查找、替换和提取等操作。在Java中,正则表达式通过`java.util.regex`包提供的类和接口来实现。这篇博文...
"Java 中过滤Html标签" Java 中过滤Html标签是指在Java语言中删除或替换HTML标签的过程。...使用正则表达式过滤Html标签是Java中的一种常见技术,可以用来删除恶意代码、防止XSS攻击、显示纯文本等。
对于HTML标签的匹配,可以使用类似以下的正则表达式:`*[a-zA-Z]+>`。此表达式匹配单个HTML标签,不包括属性。 #### 八、ASP, PHP, JSP等脚本语言使用正则过滤和匹配 在Web开发中,正则表达式是非常有用的工具。...
标题提到的"移除HTML标签的正则表达式"就是解决这类问题的一个方法。以下将详细解释这个ASP版本的正则表达式及其工作原理。 首先,我们来看这段ASP代码: ```vbscript ' 模块名: RemoveHTML ' 功 能 : 移除HTML...
5. **HTML标签过滤**:在用户输入内容时,防止恶意插入HTML代码,可以使用正则表达式移除或转义非法标签。 后端开发中的正则表达式应用: 1. **数据过滤**:在接收用户输入数据时,后端需要对数据进行清洗,去除...
**应用场景:** 这个正则表达式用于删除HTML标签,保留纯文本内容。这对于从网页中提取纯文本信息非常有帮助。 ### 5. 去除字符串首尾的空白字符 **正则表达式:** `^\s*|\s*$` **应用场景:** 用于去除字符串开头...
4. **数据过滤**:在读取或写入数据库之前,可以用正则表达式对数据进行清洗和格式化。 5. **模板引擎**:一些模板引擎如FreeMarker或Velocity,它们的配置或模板语法中也支持正则表达式,用于动态内容的处理。 这...
Java中的正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串模式。在Java中,正则表达式通常与`java.util.regex`包中的类一起使用,如`Pattern`和`Matcher`。以下是一些常用的正则表达式及其...
### 正则表达式在Java中的应用与匹配规则详解 #### 标题解析:正则表达式 正则表达式是一种强大的文本模式匹配工具,在文本处理、数据验证、字符串搜索和替换等方面有着广泛的应用。在Java中,正则表达式通过`java...
从给定的文件信息中,我们可以提炼出一系列与正则表达式相关的知识点,涉及中文字符匹配、特殊字符排除、字符串模式、HTML标签提取、电子邮件地址验证、URL格式检测、用户名规则、电话号码格式、数字验证、日期格式...
下面我们将详细讨论如何在Java中通过正则表达式过滤HTML代码。 首先,我们需要理解HTML标签的基本结构。HTML标签通常由尖括号 `和 `>` 包围,如 `<tag>` 和 `</tag>`,其中 `tag` 是标签名称。有一些特殊的情况,如...
需要注意的是,正则表达式处理HTML有一定的局限性,特别是当HTML标签嵌套或者存在复杂结构时。对于更复杂的HTML处理,可能需要使用像Jsoup这样的库,它提供了更强大的解析和操作HTML的能力。 在实际项目中,`README...