正则表达式入门课 / 教你轻松学习正则
涂伟忠
高级研发工程师
 
  • 课程目录
  • 课程介绍
  • 开篇词丨学习正则,我们到底要学什么?

    使用正则可以使许多难题迎刃而解。

  • 导读 | 余晟:我是怎么学习和使用正则的?

    掌握了适当的方法,学会“克制”,正则其实很轻松。

  • 01 | 元字符:如何巧妙记忆正则表达式的基本元件?

    正则表达式里的元字符可以通过分类的方法来实现快速记忆。

  • 02丨量词与贪婪:小小的正则,也可能把CPU拖垮!

    我们在写正则的时候,一定要思考下回溯问题,避免使用低效的正则,引发线上问题。

  • 03 | 分组与引用:如何用正则实现更复杂的查找和替换操作?

    我们可以利用分组引用,来实现将“原文本部分内容”,在查找或替换时进行再次利用,达到实现复杂文本的查找和替换工作。

  • 04 | 匹配模式:一次性掌握正则中常见的4种匹配模式

    正则中常见的匹配模式有4种,分别是不区分大小写模式、点号通配模式、多行模式和注释模式。

  • 05 | 断言:如何用断言更好地实现替换重复出现的单词?

    正则中提供了一些结构,只用于匹配位置,而不是文本内容本身,这种结构就是断言。

  • 06 | 转义:正则中转义需要注意哪些问题?

    正则中转义有些情况会比较复杂,从录入的字符串文本,到最终的正则表达式,会经过字符串转义和正则转义两个步骤。

  • 07 | 正则有哪些常见的流派及其特性?

    一般情况下,我们面对的都是GNU BRE和GNU ERE。它们的主要区别在于,前者要转义。

  • 08 | 应用1:正则如何处理 Unicode 编码的文本?

    在使用Unicode的时候你要弄明白是拿Unicode去匹配,还是编码后的某部分字节去进行匹配。

  • 09 | 应用2:如何在编辑器中使用正则完成工作?

    正则的使用一般会和其它的方法结合起来,最终帮助我们高效地完成文本的处理工作。

  • 10 | 应用3:如何在语言中用正则让文本处理能力上一个台阶?

    正则解决的问题大概可以分成四类,分别是校验文本内容、提取文本内容、替换文本内容、切割文本内容。

  • 11 | 如何理解正则的匹配原理以及优化原则?

    只有了解正则引擎的工作原理,我们才可以更轻松地写出正确的,性能更好的正则表达式。

  • 12 | 问题集锦:详解正则常见问题及解决方案

    正则处理问题的基本思路,通常是将问题拆解成多个小问题,每个小问题见招拆招。

  • 加餐 | 从编程语言的角度来理解正则表达式

    除了从正则表达式自身的语法元素、功能特性来理解正则表达式之外,我们还可以站在编程语言以及编程范式的层面去理解正则表达式。

  • 结束语 | 使用正则提高你的人生效率

    我们需要做的就是沉下心来,不要浅尝辄止,越是基础的内容越重要,一次性多投入些时间,弄清楚,搞明白。

  • 结课测试 | 这些正则知识,你都掌握了吗?

    为了帮助你检验自己的学习效果,我特别给你准备了一套结课测试题。这套测试题共有20道题目,满分100分。

你将获得

  • 正则表达式的系统学习路径

  • 事半功倍的分类记忆法

  • 常见正则问题及解决方案

  • 多场景案例实操正则应用

讲师介绍

涂伟忠,现任某大型企业高级研发工程师,工作以来一直从事后端服务研发工作,在服务端开发方面有非常丰富的实战经验。编程十多年来,他一直坚持技术输出,著有《Django开发从入门到实践》一书,也是极客时间每日一课《15分钟带你快速掌握正则表达式》的作者。

课程介绍

作为计算机领域最伟大的发明之一,正则表达式简单、强大,它可以极大地提高我们文本处理的效率。但是,很多人提起正则,都会是下面这样的场景:

  1. 哎,不会写正则,算了,从网上直接找现成的吧;
  2. 阻挠我学正则的,不是我的内心,而是难记的正则符号。

你是不是也觉得似曾相识呢?但如果止步于此,我们永远都不能真正掌握正则这个利器。

比如,我们很难从网上找到适合自己业务场景的正则表达式,如果自己还不会改的话,就很容易出现性能问题,例如正则出现大量的回溯,拖垮了CPU。

除此之外,不会正则还会降低我们的工作效率,其实很多看似麻烦的事情,用正则可以轻松搞定。比如下面这个例子,从文本中找出连续出现的重复单词。你可以看到,正则可以很方便地帮我们搞定这个需求。

>>> import re
>>> test_str = "the little cat cat in the hat hat."
>>> re.sub(r'(\w+) \1', r'\1', test_str)
'the little cat in the hat.'

因此,涂伟忠老师打算用一套系统化的方式教你巧妙地记忆、掌握正则,并一步步讲述正则的知识框架,最后通过对比不同编程语言和编译器中的正则,教你在实操中理解并学会正则表达式。

课程模块设计

课程共两个模块,分别是基础篇和应用篇。

正则基础篇

基础篇将讲述正则的基础概念和知识,比如正则元字符、匹配模式等,帮助用户巧妙记忆正则,并系统地建立有关正则的基础框架,为下一步的进阶打下基础。

正则应用篇

在应用篇中,将讲述正则的进阶内容,比如正则中的断言是什么,正则都有哪些流派,不同编译器里的正则都有什么不同?通过这些内容,可以让你更加游刃有余地使用正则,把正则这个工具更好地落地到实际工作中。

课程目录

特别放送

订阅须知