课程简介

5408 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
已经具备正则基础知识且想要学习更深入的正则用法的同学,对正则匹配方式、正则性能有兴趣的人
你将会学到
学习高端正则各种用法,理解正则匹配的机制,编写高性能的正则,真正对正则各方面都烂熟于心
课程简介

本课程旨在介绍高级正则表达式相关知识,主要有两方面:高级正则一些功能的用法、大量原理性的东西。


其中包含了DFA/NFA引擎的介绍、回溯是什么、大量正则匹配过程的分析、高级正则功能(环视锚定、命名捕获、固化分组、非贪婪匹配、占有优先匹配、递归正则......)、正则性能分析,等等。课程借助Perl、Ruby和RegexBuddy这3种工具进行解释和分析。


课程难度较高,要求已经具有正则基础知识(至少已经会写基本的正则表达式),如果不具备基础知识,可观看我的正则入门课程:

https://edu.51cto.com/course/20290.html




课程目录:

1.课程简介

2.工具介绍:Perl和Ruby中使用正则表达式

3.工具介绍:正则调试工具RegexBuddy的用法

4.正则表达式全局工作流程

5.正则基础回顾:何为正则元素

6.正则表达式的匹配过程(简单版)

7.分析DFA和NFA正则引擎的特点以及不同的匹配机制

8.什么是回溯以及回溯为什么是性能杀手

9.反斜线序列之字符匹配

10.反斜线序列之位置锚定

11.^$为什么能匹配空行

12.详细分析贪婪匹配、非贪婪匹配和占有优先匹配

13.详细分析环视锚定

14.分组捕获、只分组不捕获和固化分组

15.匹配模式修饰符:imsx

16.优化正则表达式(1):只编译一次修饰符o

17.全局匹配修饰符:g和c

18.递归正则表达式(1):简单介绍

19.递归正则表达式(2):理解反向引用和递归引用

20.递归正则表达式(3):初探递归正则如何匹配

21.递归正则表达式(4):如何保证递归的终点

22.递归正则表达式(5):再探递归正则如何匹配

23.递归正则表达式(6):分组的递归

24.递归正则表达式(7):编写递归正则(入门)

25.递归正则表达式(8):编写递归正则(进阶)

26.递归正则表达式(9):递归结合二选一分支

27.递归正则表达式(10):递归正则的性能问题

28.递归正则表达式(11):递归正则的分组捕获问题

29.优化正则表达式性能的几种常见手段

展开更多
发布
头像

{{ item.user.nick_name }} {{ EROLE_NAME[item.user.identity] }}

置顶笔记
讨论图
{{ item.create_time }}回复
  • 删除

    是否确认删除?

    确认
    取消
  • {{ item.is_top == 1 ? '取消置顶' : '置顶'}}

    已有置顶的讨论,是否替换已有的置顶?

    确认
    取消
{{ tag.text}}
头像
{{ subitem.user.nick_name }}{{ EROLE_NAME[subitem.user.identity] }}
{{ subitem.create_time }}回复
删除

是否确认删除?

确认
取消
发布
{{pageType === 'video' ? '讨论区抢占沙发,可获得双倍学分' :'讨论区空空如也,你来讲两句~'}}
发布
{{tips.text}}
{{ noteHeaderTitle }} 笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
头像
{{ detail.username }}

公开笔记对他人可见,有机会被管理员评为“优质笔记”

{{ noteEditor.content.length }}/2000

公开笔记
保存
提问

讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。

记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交