服务热线

029-87595239

当前位置:首页 > 社区新闻 > 技术文章 >

怎样用正则表达式删除指定标签

超文本符号言语(外国语简称:html)符号标签通常被称为HTML标签,HTML标签是HTML言语中最根本的单位,HTML标签是HTML(规范通用符号言语下的一个运用)最重要的组成部分。那么怎样运用正则表达式删去所指定的HTML标签呢?下面是西安Java培训整理的知识。

  一、正则表达式

  咱们知道什么是正则表达式吗?假设不太了解的话,小编在这儿就简略的和咱们介绍一下吧。正则表达式,又称正规表明法、惯例表明法(英语:RegularExpression,在编程代码中常简写为regexregexpRE),计算机科学的一个概念。正则表达式运用单个字符串来描绘、匹配一系列契合某个句法规矩的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些契合某个形式的文本。

  咱们在抓取某一个网页里边的数据信息今后(就比如说:描绘),假设是依照原来的姿态显示出来的话,有可能会由于它里边包括了一些并没有闭合的HTML标签,从而就将原有的格局打乱了。当然啦,也有可能由于它里边运用了较为让人"隐晦"HTML标签,从而将预定的网页格局给扰乱了.假设说咱们全盘删去里边的HTML标签,这姿态操作也可能会形成一些阅览上面的困难(就比如说imga等等这些标签)。要问小编有什么好的主张?小编的主张:最好就是保存一部分标签,删去一部分标签。

  在正则表达式里边,咱们需求判别一下包括某一些字符串(字符串是由数字、字母、下划线组成的一串字符。)是十分简略理解的。那么问题就来了,怎样判别一下不包括某一些字符串(在这儿咱们要注意咯,这指的是字符串,可是并不是字符,是某一些,不是某一个)的确是一件令人隐晦的工作啊.咱们能够参阅一下下面的正则表达式,如下所示:<(?!((/?\\s?li)|(/?\\s?ul)|(/?\\s?a)|(/?\\s?img)|(/?\\s?br)|(/?\\s?span)|(/?\\s?b)))[^>]+>

  相信咱们能够看到其实这一个正则表达式所代表的意思就是:判别一下HTML标签里边不包括li/ul/a/img/br/span/b等等这些标签,就从上面的要求来说,是需求删去除了这儿所举列出来的HTML标签。这也是小编探索了十分长的时刻才搞出来的,咱们无妨能够尝试一下。

  (?!exp)这一个正则表达式匹配后边跟的并不是exp的方位,/?\\s?这一个正则表达式开始的时候小编尝试着将其编写到最前面的方位<后边,可是终究还是以测验失利告终了.

  二、示范

  接下来就为咱们演示一个较为简略的函数吧,这一个函数所要做的工作就是要将保存的TAG统统串起来,然后生成一个正则表达式,接着就要将一些并不需求的TAG统统删去。详细的函数,

  咱们能够发现上面这一个正则表达式里边是有bug的,什么bug呢?那就是假设咱们将li标签保存了,可是在实践的运行过程中,咱们会发现link标签也相同给保存下来了,保存a标签相同也会把addr标签给保存下来了。那么终究有什么好的批改办法呢?当然有啦,最好的解决方案就是加\\b标签进行断言。