精华内容
下载资源
问答
  • 那么怎样使用正则表达式删除所指定的HTML标签呢?现在我们就一起来学习一下吧。一、正则表达式大家知道什么是正则表达式吗?如果不太了解的话,小编在这里就简单的和大家介绍一下吧。正则表达式,又称正规表示法、...

    超文本标记语言(外国语简称:html)标记标签通常被称为HTML标签,HTML标签是HTML语言中最基本的单位,HTML标签是HTML(标准通用标记语言下的一个应用)最重要的组成部分。那么怎样使用正则表达式删除所指定的HTML标签呢?现在我们就一起来学习一下吧。

    一、正则表达式

    大家知道什么是正则表达式吗?如果不太了解的话,小编在这里就简单的和大家介绍一下吧。正则表达式,又称正规表示法、常规表示法(英语:RegularExpression,在编程代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

    4d1618f804a15ce1ca92058da4fb0d4f.png

    大家在抓取某一个网页里面的数据信息以后(就比如说:描述),假如是按照原来的样子显示出来的话,有可能会因为它里面包含了一些并没有闭合的HTML标签,从而就将原有的格式打乱了。当然啦,也有可能因为它里面使用了较为让人"费解"的HTML标签,从而将预订的网页格式给搅乱了.假如说我们全盘删除里面的HTML标签,这样子操作也可能会造成一些阅读上面的困难(就比如说img,a等等这些标签)。要问小编有什么好的建议?小编的建议:最好就是保留一部分标签,删除一部分标签。

    在正则表达式里面,我们需要判断一下包含某一些字符串(字符串是由数字、字母、下划线组成的一串字符。)是十分容易理解的。那么问题就来了,怎样判断一下不包含某一些字符串(在这里大家要注意咯,这指的是字符串,然而并不是字符,是某一些,不是某一个)的确是一件令人费解的事情啊.大家可以参考一下下面的正则表达式,如下所示:]+>

    相信大家可以看到其实这一个正则表达式所代表的意思就是:判断一下HTML标签里面不包含li/ul/a/img/br/span/b等等这些标签,就从上面的要求来说,是需要删除除了这里所举列出来的HTML标签。这也是小编摸索了非常长的时间才搞出来的,大家不妨可以尝试一下。

    (?!exp)这一个正则表达式匹配后面跟的并不是exp的位置,/?\\s?这一个正则表达式最初的时候小编尝试着将其编写到最前面的位置

    二、示范例子

    接下来小编就为大家演示一个较为简单的函数吧,这一个函数所要做的事情就是要将保留的TAG通通串起来,然后生成一个正则表达式,接着就要将一些并不需要的TAG通通删除。具体的函数,如图所示:

    8f7fba883c9707c10ec9daed62d16ef8.png

    大家可以发现上面这一个正则表达式里面是有bug的,什么bug呢?那就是假如我们将li标签保留了,但是在实际的运行过程中,大家会发现link标签也同样给保留下来了,保留a标签同样也会把addr标签给保留下来了。那么究竟有什么好的修正方法呢?当然有啦,最好的解决方案就是加\\b标签进行断言。具体的实现方法,如图所示:

    5940a2b562517c090cab9e5ab8c9a604.png

    小编结语:

    以上是今天的编程语言的教程了,介绍了怎样使用正则表达式删除所指定的HTML标签呢?希望这对你有所帮助。如果你也有这样的需要,那就赶快来学习一下吧。如果大家喜欢课课家教育的话,不妨可以推荐更多的朋友来哟!

    展开全文
  • 主要介绍了Java使用正则表达式删除所有HTML标签的方法,结合完整实例形式分析了java针对HTML页面元素script标签、style标签、html标签等的正则匹配相关操作技巧,需要的朋友可以参考下
  • rm 使用正则表达式 删除文件

    千次阅读 2019-11-01 14:36:05
    1、rm 使用正则表达式 删除文件: ls|grep -E "prodmabyuser.*-155[0-9]{10}\.jpg"|xargs rm 2、获取最新修改时间的一个文件 ls -lt|grep 'wxapp[0-9]*\.zip'|head -1|awk '{print $8}' ...

    1、rm 使用正则表达式 删除文件: 

    ls|grep -E  "prodmabyuser.*-155[0-9]{10}\.jpg"|xargs rm  

    2、获取最新修改时间的一个文件

    ls -lt|grep  'wxapp[0-9]*\.zip'|head -1|awk '{print $8}'

     

    展开全文
  • 去掉前后位空格的方法有很多种,下面脚本之家小编给大家分享使用js正则表达式如何删除前后空格,感兴趣的朋友跟着一起学习学习吧
  • 在课堂上了解到了正则表达式,然后自己去百度了一番,发现正则表达式应用的范围还是比较广泛的,在Python爬虫爬取数据时候,也会上正则表达式,所以决定花点心思去学习一下正则表达式正则表达式语法 普通字符...

    编程环境

    • windows 10

    • eclipse


    前言

      在一次Java程序设计课程中,在课堂上了解到了正则表达式,然后自己去百度了一番,发现正则表达式应用的范围还是比较广泛的,在Python爬虫爬取数据时候,也会用上正则表达式,所以决定花点心思去学习一下正则表达式。



    正则表达式语法

    • 普通字符
    正则表达式 说明
    [123abc] 匹配[…]括号里边的所有字符,相当于匹配1或2或3或a或b或c, 等价于[1|2|3|a|b|c]
    [^123abc] 匹配除了[…]之外的所有字符,相当于匹配除了1,2,3,a,b,c之外的所有字符
    [a-z] 表示一个区间,匹配小写字母
    [A-Z] 表示一个区间,匹配大写字母
    [0-9] 表示一个区间,匹配0到9之间的数字
    \d 匹配数字,等价于[0-9]
    \D 匹配非数字,等价于[^0-9]
    \w 匹配字母、数字或者下划线,等价于[a-zA-z0-9_]
    \W 匹配非字母、非数字或者非下划线,\W相当于匹配\w的补集字符,等价于[^a-zA-z0-9_]

    说明:\大写字母 和 \小写字母,匹配的字符内容是相反的,^代表取反的意思


    • 非打印字符
    正则表达式 说明
    \cx 匹配由x指明的控制字符。例如, \cM 匹配一个 control-M 或回车符。x 的值必须是26个字母
    \f 匹配一个换页符
    \n 匹配一个换行符
    \r 匹配一个回车符
    \t 匹配一个制表符
    \v 匹配一个垂直制表符
    \s 匹配所有的空白字符,等价于[\f\n\r\t\v]
    \S 匹配所有非空白字符,等价于[^\f\n\r\t\v]

      说明:控制字符主要有LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等,存在于Ascii码中的第0~31号及127号中。想了解更多关于控制字符的内容请点击这里


    • 特殊字符
    正则表达式 说明
    $ 匹配输入字符串的结尾位置,要匹配 $ 字符本身,请使用\$。
    ( ) 标记一个子表达式的开始和结束位置,要匹配这些字符,请使用 \( 和 \)
    * 匹配前面的子表达式零次或多次,要匹配 * 字符,请使用 \*
    + 匹配前面的子表达式一次或多次,要匹配 + 字符,请使用 \+
    . 匹配除换行符 \n 之外的任何单个字符,要匹配 . ,请使用 \.
    [ 标记一个中括号表达式的开始。要匹配 [ ,请使用 \[
    ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符,要匹配 ? 字符,请使用 ?
    \ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符
    ^ 匹配输入字符串的开始位置,当该符号在方括号表达式中使用时,匹配非方括号内容的字符,相当于取反,要匹配 ^ 字符本身,请使用 ^
    { 标记限定符表达式的开始,要匹配 {,请使用 \{
    | 指明两项之间的一个选择,相当于或,要匹配 |,请使用 \

    • 限定字符
    正则表达式 说明
    {n} n 是一个非负整数,匹配确定的 n 次
    {n,} n 是一个非负整数,至少匹配n 次
    {n,m} m 和 n 均为非负整数,其中n <= m,最少匹配 n 次且最多匹配 m 次



    正则表达式的应用

    • 实例1

      我们来讲一下比较有用的例子吧,拿html的标签页来举例子,假如说我们需要匹配html中a标签下的链接

    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class Debug {
    
    	public static void main(String[] args) {
    		String html = "<a class=\"regex\" href=\"https://www.baidu.com/\">正则表达式</a>";
    		String regex = "<a class=\"[a-z]+\" href=\"(.*?)\">(.*?)</a>";
            for (int i = 0; i < 3; i++) {
                String content = getContentByRegex(html, regex, i);
                System.out.println(content);
            }
    	}
        
        public static String getContentByRegex(String html, String regex, int index) {
            String content = "";	// 如果没有匹配到, 则返回空字符串
    		Pattern pattern = Pattern.compile(regex);
    		Matcher match = pattern.matcher(html);
    		if (match.find()) {
    			content = match.group(index);
    		}
    		return content;
        }
    
    }
    

      解释说明一下上面的代码,html是我们获取到的网页源代码,regex就是我们写的正则表达式规则,可以看到的是,我在href=后边使用了 .*? ,.*? 指的是匹配除了换行之外的所有字符,在这个代码里边就是匹配href后边的整个链接(ps: .*? 在写在href双引号的里边), .*? 我个人觉得是比较常用的一种,简单好用。接下来就是调用自己写的函数来返回匹配的内容,其中match.find()是必不可少的,match.group(0)或者match.group()代表的是正则表达式规则的全部内容,match.group(1)代表的是第一个括号里边的内容,match.group(2)代表的是第二个括号里边的内容,依次类推。


    代码的运行结果如下

    <a class="regex" href="https://www.baidu.com/">正则表达式</a>
    https://www.baidu.com/
    正则表达式
    

      如果我们只需要href里边的链接,我们就只需要match.group(1)就可以了。



    • 实例2

      那如果我们想匹配网页上所有a标签下的链接的话,该怎么做呢?先上代码

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import java.util.List;
    import java.util.ArrayList;
    
    public class Debug {
    
    	public static void main(String[] args) {
    		String html = "<a class=\"regex\" href=\"https://www.baidu.com/\">正则表达式\n</a>隔开两个a标签的内容\n<a class=\"regex\" href=\"https://blog.csdn.net/\">正则表达式\n</a>";
    		String regex = "<a class=\"[a-z]+\" href=\"(.*?)\">(.*?)</a>"; // 正则表达式规则
            List<String> content = getContentByRegex(html, regex, 1);	// 获取到的内容
    		System.out.println(content);	// 输出
    	}
        
        public static List<String> getContentByRegex(String html, String regex, int index) {
    		List<String> list = new ArrayList<>();	// 创建一个空列表
    		Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
    		Matcher match = pattern.matcher(html);
    		while (match.find()) {
    			list.add(match.group(index));
    		}
    		return list;
    	}
    
    }
    

      解释说明:因为我们需要匹配多个a标签下的链接,所以我们用列表来存储这些链接比较方便,对比上一个例子,会发现compile中多了一个Pattern.DOTALL, 原来 .*? 匹配的是除了换行之外的所有字符,使用DOTALL会把\n也当成一个普通字符,也就是说 .*? 也会匹配换行符;还有就是在getContentByRegex函数中用的是while (match.find()) 而不是if (match.find()),因为这里是有多个链接的,所有用的是while。


    代码的运行结果如下

    [https://www.baidu.com/, https://blog.csdn.net/]
    

    我们来输出一下match.group(2),输出结果如下:

    [正则表达式
    , 正则表达式
    ]
    

    会发现,也把 \n 符匹配了进去,所以输出时候文字后边会多了一个 \n ,这也就是使用DOTALL的原因,如果没有使用DOTALL则会匹配失败,返回的是空列表 [] 。



    总结

      上述就是我对正则表达式的理解,讲到的内容可能偏少,不过都是比较实用的东西。希望这篇文章会对你有帮助,如果有什么问题欢迎在评论区提出。

    展开全文
  • 很多企业在申请软著的过程中都遇到提交源代码时要求删除空行及注释,对于60页的代码,每页显示50行的要求,如果人工一页一页去查找还是比较麻烦的,大部分同学都会选取一个文本编辑器通过查找替换功能完成该项工作,...

    很多企业在申请软著的过程中都遇到提交源代码时要求删除空行及注释,对于60页的代码,每页显示50行的要求,如果人工一页一页去查找还是比较麻烦的,大部分同学都会选取一个文本编辑器通过查找替换功能完成该项工作,提高效率。

    大部分编程语言的注释主要有以下三种:

    1.行注释   //这是行注释

    2.多行注释

    /*  这是多行注释

    这是多行注释  */

    3.文档注释或块注释

    /**  文档注释

    *  文档注释

    *  文档注释 */

    4.html 等类标记语言注释

    大部分的 IDE 实际上都支持正则表达式查找替换,但对于软著写作,我们通常会把代码先导入到 word,然后在复制到编辑器中,例如 windows 下的 notepad++或者 mac 下的 sublime text。需要查找特殊字符的正则表达式如下:

    1.删除行注释//

    正则表达式://[\s\S]*?\n

    2.删除多行注释或文档注释 /**/

    正则表达式:/\*{1,2}[\s\S]*?\*/

    3.删除空白行

    正则表达式:^\s*\n

    4.删除注释

    正则表达式:

    当然正则的写法有很多种,要看你代码字符的复杂性,同时也要看你的操作系统,例如\n或者是\r\n  或者是\r 都可能是换行符,要看你的系统是windows还是Unix/Linux或者是mac的系统。

    展开全文
  • VScode使用正则表达式快速删除注释

    万次阅读 多人点赞 2019-04-25 18:06:35
    运用VScode中的替换功能和正则表达式匹配可以快速删除大量注释 删除的具体步骤如下: 打开VScode,按Ctrl + H 打开替换框 点击如图按钮切換到使用正则表达式匹配 输入正则表达式,选择全部替换 下面就分享...
  • 元字符正则表达式的特点正则表达式中的标志位-flagJavaScript中的正则表达式解析RegExp定义 RegExpRegExp 对象有 3 个方法:Regex类重复操作与后向引用正则表达式的匹配模式怎么用正则表达式表达邮箱正则表达式对象...
  • python使用正则表达式删除字符串中的其它字符只保留数字和字母 #python使用正则表达式删除字符串中的其它字符只保留数字和字母 # Python code to demonstrate # to remove all the characters # except ...
  • 为什么要正则表达: ...什么是正则表达式正则表达式就是一个字符串格式的规则。 如何定义正则表达式。 var reg=/正则表达式/; //正则要双 / / 包 起来 var result=reg.test(“字符串”);//验证字符串是否满足...
  • 简单地说,正则表达式就是处理字符串的方法,它以行为单位来进行字符串的处理操作,正则表达式通过一些特殊符号的辅助,可以让用户轻易地完成【查找、删除、替换】某特定字符串的处理过程。正则表达式基本上是一种**...
  • 正则表达式学习1、正则表达式是一门独立的学科,和任何编程语言无关,2、在编程中使用正则表达式最主要是用来做字符串模式匹配。3、在正则表达式中规定一些特殊符号,每一个符号都具有特殊含义。4、在实际开发中我们...
  • 6.1 什么是正则表达式对于什么是正则表达式,网络上有很多解释。作者的理解是:正则表达式是一种文本模式,或者说是一种特殊的字符串模式,它的...因为正则表达式经常会与这些命令配合一起使用。6.3.1 grep 命令gr...
  • 正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。 正则表达式的匹配规则 参照帮助文档...
  • 在Editplus中使用正则表达式删除整行数据 1.目的:用正则表达式删除不需要的行 2.原始数据:略 3.选用工具:EditPlus 4.规则: 将^.*~$ 替换为空 ,将尾号为~的行替换为空 将^.*bak.*$ 替换为空,将中间含有bak的行...
  • 一、UltraEdit中使用正则表达式删除某个字符串(或特殊字符)后面的所有内容 举例:将以下内容中左括号“(”包括本身和它之后的内容都删除 正则表达式:^([^\(]*)\(.*$ 替换框:$1(正则表达式中第一对圆括号中...
  • 写在前面:一直以来 对于正则表达式使用都没有进行一个系统性的梳理学习,导致在工作中进行脚本编写时,总是会出现一些不符合自己认知的错误,最近抽空将其进行了系统性的学习与梳理 所谓正则表达式 是对文本中的...
  • 3、选择排除规则,一、按正则表达式把源码中符合正则的删除;二、按正则表达式把源码中符合正则的找出;三、符合正则表达式的显示True 4、选择是否不区分大小写(RegexOptions.IgnoreCase),单行模式...
  • python 语言对于字符串匹配及其他更为复杂的字符串处理,就需要使用正则表达式正则表达式是一个特殊的字符序列,使用正则表达能很方便地在文中查找和匹配字符串模式。Python 自 1.5 版本起增加了 re 模块,re 模块...
  • 一、正则表达式–>删除空格 命令:^\s*\n 操作截图: 二、 正则表达式–>删除注释 1. 删除 块注释 : 命令:/\*(.|\r\n|\n)*?\*/ 操作截图:![删除块注释]...
  • 这里就可以使用正则表达式快速替换掉。正则表达式是可以在Notepad++使用的 具体步骤如下 全部替换,一步搞定。 问题2: 怎么让它以标题的形式显示在markdown文件上? 解决思路: soeasy还是正则表达式
  • 目录: 一、正则表达式简介 二、正则表达式符号的含义以及简单的例子 1、正则表达式符号含义 2、正则表达式符号对语言的支持 ... 3.3正则表达式应用——删除每一行行尾的指定字符 ...
  • 比如字符串 AAAA(BBBA)DDDD(sada)BBBB 首先获取到所有括号和括号内的字符串。然后判断括号内是否有大写A。如果有就保留,如果没有就删除括号和括号内的字符串。...这个正则表达式怎么写啊。。新手刚学C# 没弄懂正则
  • 正则表达式的基本语法及使用正则表达式完成字符串的检索、替换、查找。
  • 正则表达式到底有什么? 文本中Regular的文本不小心继承了Reguler  有一个?  有多个? 当然,正则表达式的文本用途无法穷尽,因为文本的存在实在是台普遍了、 现状:很多计算机用户和开发人员对如何使...
  • 在项目中遇到这样一个需求,需要将一段html转换为一般文本返回,万能的正则表达式来了。正则表达式来拯救你,代码如下:public static string Html2Text(string htmlStr){if (String.IsNullOrEmpty(htmlStr)){return...
  • 主要介绍了C#基于正则表达式删除字符串中数字或非数字的方法,涉及C#针对数字的简单正则匹配相关操作技巧,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 176,680
精华内容 70,672
关键字:

怎样用正则表达式删除