- 浏览: 885786 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
前段时间开发的时候要读取一篇文章的简介内容(也就是前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();
- }
- }
发表评论
-
操作系统的目标和作用
2012-07-05 23:46 1312操作系统的目标 目前存在着多种类型的OS,不同类型的OS ... -
利用(ffmpeg)生成视频缩略图(java)
2012-07-01 01:11 0对于上传视频生成缩略图使用的是ffmpeg进行生成的。 自己在 ... -
对Java多线程技术中所有方法的详细解析
2012-06-06 11:32 770一、run()和start() 这两个 ... -
java乱码
2012-06-06 11:33 956自从接触Java和JSP以来, ... -
学习apache commons-io类库中的文件清除器
2011-07-06 23:26 1423学习apache commons-io 1.4类库中的File ... -
转---Eclipse中web-inf和meta-inf文件夹的信息
2011-05-24 13:08 1123Eclipse中web-inf和meta-inf ... -
logback与Log4J的区别
2011-05-17 23:34 1415Logback和log4j是非常相似 ... -
性能优化
2011-04-14 16:10 1157(1)jdbc性能优化 jdbc程序的性能主要由两个因素决定 ... -
JAVA的Random类(转)
2011-04-12 00:21 900Random类中实现的随机算法是伪随机,也就是有规则的随机。在 ... -
非阻塞的Socket链接
2011-04-10 21:59 882import java.io.IOException; ... -
创建临时文件
2011-04-10 21:55 1082package net.java2000.io; ... -
面向对象设计的基本原则
2011-04-07 10:28 1136摘自:http://soft6.com/tech/6/6501 ... -
proxool
2011-04-02 15:01 844属性列表说明: fatal-sql- ... -
当前Java软件开发中几种认识误区
2011-04-01 10:12 868越来越多人开始使用Java ... -
Java中查看一个方法被调用的层次(Reflection、StackTrace)
2011-04-01 00:53 2020package test; public class Mai ... -
反序列化时恢复transient字段
2011-03-30 13:20 1204我们知道将字段设置为transient,可以避免该自动被序列化 ... -
用socket连接服务器直接发送接收邮件
2011-03-22 17:22 1292首页 新闻 论坛 问答 博客 招聘 更多 ▼ 专栏 &l ... -
利用JavaMail收/发Gmail邮件(SSL)
2011-03-22 17:21 2377Gmail目前已经启用了POP3和SMTP服务,具体情况请看 ... -
Java 反射与内省
2011-03-14 22:08 1066一、java反射机制 JAVA反 ... -
关于jdk的注解@SuppressWarnings详解
2011-03-01 15:23 1486@SuppressWarnings J2SE 提供的一个批注或 ...
相关推荐
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...