转自:http://pmh905001.iteye.com/blog/239900
/**
* filter all html element.
* For example:<a href="www.sohu.com/test">hello!</a>
* The filter result is :hello!
* Notice:This method filter the text between "<" and ">"
* @param element
* @return
*/
public static String getTxtWithoutHTMLElement (String element)
{
// String reg="<[^<|^>]+>";
// return element.replaceAll(reg,"");
if(null==element||"".equals(element.trim()))
{
return element;
}
Pattern pattern=Pattern.compile("<[^<|^>]*>");
Matcher matcher=pattern.matcher(element);
StringBuffer txt=new StringBuffer();
while(matcher.find())
{
String group=matcher.group();
if(group.matches("<[\\s]*>"))
{
matcher.appendReplacement(txt,group);
}
else
{
matcher.appendReplacement(txt,"");
}
}
matcher.appendTail(txt);
repaceEntities(txt,"&","&");
repaceEntities(txt,"<","<");
repaceEntities(txt,">",">");
repaceEntities(txt,""","\"");
repaceEntities(txt," ","");
return txt.toString();
}
private static void repaceEntities ( StringBuffer txt,String entity,String replace)
{
int pos=-1;
while(-1!=(pos=txt.indexOf(entity)))
{
txt.replace(pos,pos+entity.length(),replace);
}
}
下面是测试用例:
public void testGetTxtWithoutHTMLElement ()
{
assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<a href='a/test'>test</a>"));
assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<a href='a/test'>test"));
assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<input type='text'>test</input>"));
assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<p>test"));
assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<table><tr><td>test</td></tr></table>"));
assertEquals("te<st",ExcelHssfView.getTxtWithoutHTMLElement("<p>te<st"));
assertEquals("te>st",ExcelHssfView.getTxtWithoutHTMLElement("<p>te>st"));
assertEquals("tst",ExcelHssfView.getTxtWithoutHTMLElement("<p>t<e>st"));
assertEquals("t<st",ExcelHssfView.getTxtWithoutHTMLElement("<p>t<<e>st"));
assertEquals("<>test",ExcelHssfView.getTxtWithoutHTMLElement("<p><>test"));
assertEquals("< >test",ExcelHssfView.getTxtWithoutHTMLElement("<p>< >test"));
assertEquals("<<>test",ExcelHssfView.getTxtWithoutHTMLElement("<p><<>test"));
assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<table><tr><td> test</td></tr></table>"));
}
相关推荐
例如,Python中的`re`模块、Java中的`java.util.regex`包、JavaScript中的`RegExp`对象等,都提供了丰富的正则表达式功能,使得开发者能够轻松地进行字符串操作。 #### 应用实例 正则表达式的应用十分广泛,以下是...
这些正则表达式都是日常编程中常用的基础模式,它们在数据验证、搜索、过滤等任务中发挥着关键作用。理解并掌握这些表达式,对于提高开发效率和代码质量至关重要。在实际应用中,根据具体需求,可能需要对这些基础...
Java提供了`java.util.regex`包来支持正则表达式的使用。常用的类包括`Pattern`和`Matcher`。 ##### 9.4 DELPHI中的正则表达式 在Delphi中,可以使用`TRegEx`类来处理正则表达式相关的任务。 ### 结论 正则...
在Linux、Unix或Windows的命令行中,正则表达式常用于文件查找、内容过滤等任务,这个专题可能详细讲解了相关命令和技巧。 《正则表达式30分钟入门教程.htm》与前面的入门教程相似,可能是HTML格式的版本,方便在线...
4. **数据过滤**:在读取或写入数据库之前,可以用正则表达式对数据进行清洗和格式化。 5. **模板引擎**:一些模板引擎如FreeMarker或Velocity,它们的配置或模板语法中也支持正则表达式,用于动态内容的处理。 这...
本课程重点涵盖了JavaScript的几个关键知识点:正则表达式、AJAX(异步JavaScript和XML)以及相关的编程基础。 正则表达式是JavaScript中用于模式匹配和文本操作的强大工具。它允许程序员通过定义特定的模式来搜索...
我们将深入探讨每个方面,同时引入正则表达式在验证用户输入中的应用。 首先,让我们看看"新浪微博邮箱登录界面"。这个界面通常会包含用户名(可以是手机号或邮箱)输入框、密码输入框、登录按钮,以及可能的记住...
《程序员必备API大全》是一个集合了多种Web开发技术API的资源包,主要涵盖了jQuery、JSTL、Servlet、JavaScript、CSS以及正则表达式等关键领域。这些技术是构建高效、响应式的Web应用程序的基础,对于程序员来说是不...
对于Java程序员来说,掌握正则表达式是提高工作效率的重要技能。本文将深入探讨Java程序员如何利用好regex匹配工具,特别是针对描述中提到的“Java程序员超好用的regex匹配工具”。 首先,我们要理解正则表达式的...
JSP(JavaServer Pages)是一种动态网页技术标准,可以让开发者将Java代码嵌入...然而,需要注意的是,在使用正则表达式时,应当避免正则表达式的注入漏洞,确保对用户输入进行适当的验证和过滤,防止潜在的安全风险。
这通常涉及到正则表达式和字符串操作,例如去除特殊字符,限制输入长度,或确保输入符合特定格式。使用`List`作为过滤字符库是一种常见的方法,将需要过滤的字符存储在列表中,然后在处理请求时检查每个字符是否在...
本文将深入探讨如何过滤HTML元素字符,以及在Java中实现这一功能的方法。 首先,理解HTML过滤的必要性至关重要。用户输入的数据可能会包含恶意的HTML标签或属性,如`<script>`、`<iframe>`等,这些内容如果未经处理...
综合以上工具,我们可以构建一个高效的网页解析流程:首先使用正则表达式进行初步的文本匹配,然后利用Jsoup解析HTML并提取目标元素,接着借助BeanShell进行复杂逻辑判断和数据处理,最后通过Dozer将处理后的数据...
Java中使用正则表达式过滤字符串 在Java中,使用String类的replaceAll方法来实现基于正则表达式的字符串替换。在上述Java代码示例中,使用了正则表达式`"*>.*</img>"`和`"*/>"`分别匹配两种形式的`<img>`标签,并...
在IT领域,提取文本文件(如TEXT)是从HTML文档中获取有用...这个过程可能包括解析HTML,使用正则表达式过滤非文本内容,以及通过用户界面进行交互。同时,通过日志文件监控程序运行情况,并提供了必要的文档以供参考。
总的来说,这个项目涉及到了前端的HTML、JavaScript以及后端的Java(JSP和Servlet)技术,通过自定义标签和正则表达式实现了文本框的自校验功能,提高了用户输入数据的质量,减少了无效请求对服务器的影响。...
HTMLParser 是一个用于解析HTML文档的Java库,它允许开发者以结构化的方式处理网页内容,例如提取特定元素、过滤不需要的标签等。在Web抓取或数据挖掘领域,HTMLParser是一个常用的工具,可以帮助我们从HTML源码中...
11. **正则表达式**:这是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串模式。掌握正则表达式语法和常见用法,对处理字符串数据大有裨益。 这个压缩包中的帮助文档将涵盖以上各个主题,通过深入学习和...
正则表达式在Java中通过`Pattern`和`Matcher`类来使用。 5. **用户输入验证**:在JSP中,通常会通过HTTP请求接收用户输入。我们需要在服务器端对这些输入进行验证,防止恶意用户绕过前端验证,直接提交非法内容。 ...