01-专题目录

我将向你介绍正则表达式的方方面面。下面每一章节的内容都是建立在之前章节之上的,所以你需要按序阅读下面的章节。

1. 介绍

这一章将介绍本教程的内容范围,以及正则的一些名词解释。

2. 字面量字符与元字符

最基础的正则表达式是由字面量字符组成的。有些字符具有特殊的含义,在使用的时候需要转义,我们称它们为元字符。而元字符是正则中较为复杂的部分。

3. 非打印字符

非打印字符是诸如换行符、回车符、制表符等。

4. 正则引擎内部初探

在这一章中我们将首次讲解正则引擎的内部工作,之后的章节是建立在这一章的基础之上的。理解正则表达式的内部原理将帮助我们构造更复杂、更准确的表达式。

5. 字符类(字符集)

一个字符集可以匹配一个集合中出现的任何一个字符,字符集可以包含单个字符和范围。 字符集取反则可以匹配任何没有出现在字符集中的字符。

6. 字符集缩写

字符集缩写是一种使用常用字符集的快捷方式,它既可以单独使用,也可以在字符集中使用。

7. 点操作符

.可以匹配除了行终结符以外的任何字符,在许多引擎中你可以通过配置使得.可以匹配的行终结符。

8.位置字符

位置字符是一种零宽匹配,它不能匹配任何字符,而是匹配位置。它可以匹配字符串的开始、中间、结尾。

9. 词语边界

词语边界和位置字符很接近,但是它匹配词语的开始和结束

10. 选择符

你可以使用|将多个子表达式分隔开,以此来告诉引擎从左至右依次匹配每一个子表达式。一旦发现成功的匹配立即返回。

11. 非必须项

你可以在匹配项的后面加上一个问号,以告诉引擎这个匹配项不是必须的。也就是说这个匹配项匹配失败不会导致引擎发生回溯,引擎会继续向前搜索。

12. 量词

正则中有三种形式的量词,他们分别是星号*、加号+、花括号{},他们可以指定正则中的项目重复零次或者多次、一次以上、任意指定次数。最重要的一点是:这些量词默认都是贪婪的,除非你指定使用非贪婪模式。

13-匹配组

我们可以把表达式中的一部分写入一对圆括号中,引擎会把圆括号中的内容作为一个整体(例如使用量词或是选择符的时候)。圆括号也可以创建捕获组,是的引擎可以复用匹配的字符串。

14-回溯引用

捕获组中保存的匹配结果在回溯引用中再次被匹配,也就是说它使得我们可以匹配重复出现的字符串。

15-具名捕获组和回溯引用

如果一个表达式中存在多个组,那么使用具名组可以使得表达式更容易阅读。

16-零宽预测回顾断言

使用预测或者回顾断言是一种零宽断言,它可以匹配一个位置。你可以指定这个位置之后出现指定字符串,也可以指定改位置之后不出现指定字符串。类似的,你可以指定这个位置之前出现指定字符串,也可以指定改位置之前不出现指定字符串。由于这个匹配是零宽的,所以它所匹配的结果不会计入正则表达式的匹配结果。你可以对同一个字符串同时使用预测断言和回顾断言。

16-零宽预测回顾断言-part2

预测回顾断言的巧妙运用已近性能优化

17-应用实例:提取HTML标签 修剪空白字符


如果文章出现错误,请给我提Issues - -
Github地址

原文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值