在Python数据处理的广阔天地中,字符串 manipulation 是基础也是高频场景。当简单的切片、替换或 `in` 操作无法满足复杂模式识别的需求时,正则表达式(Regular Expression)便成为了程序员手中的“瑞士军刀”。本期课程由李宁老师主讲,带你系统掌握Python中正则表达式的核心用法,从基础匹配到高级应用,构建起完整的知识闭环。

课程开篇,李宁老师首先厘清了两个极易混淆的概念:`match`与`search`。`match`函数坚持“从头部开始匹配”,若字符串起始处不符合模式,即便后面有符合条件的内容也会返回空;而`search`则更为灵活,它会在整个字符串中扫描,一旦找到第一个匹配项便立即返回。理解这一差异,是避免后续调试陷阱的第一步。

紧接着,课程深入探讨模式构成的原子单元。如何匹配任意单个字符?如何用字符集 `[abc]` 精准限定范围?又如何通过 `|` 符号实现“或”的逻辑,即在多个备选模式中选取其一?这些基础语法看似简单,却是构建复杂表达式的基石。随后,李宁老师讲解了控制重复次数的关键元字符:`*`(零次或多次)、`+`(一次或多次)、`?`(零次或一次)以及 `{m,n}`(指定次数区间),并结合特殊字符如`.`、`\d`、`\w`等,展示了如何利用它们简化代码逻辑,避免冗长的条件判断。

为了提升表达式的清晰度与复用性,课程重点讲解了“分组”技术。通过圆括号 `()`,我们可以将一部分模式作为一个整体进行量词控制,或者利用`group()`和`groups()`方法提取出特定的片段,这对于从杂乱文本中抓取关键信息(如日期、邮箱前缀)至关重要。同时,边界匹配也是不可或缺的一环——`^`和`$`分别锚定字符串的起始和结尾,`\b`则用于识别单词边界,确保我们匹配的是完整的单词而非其子串,这在文本清洗中尤为关键。

除了构建模式,如何高效地使用结果也是本课程的重头戏。`findall`与`finditer`提供了批量查找的能力,前者返回列表,后者返回迭代器,适合处理海量数据以节省内存。而在替换场景下,`sub`和`subn`函数允许我们将匹配到的内容替换为新字符串,并可选地返回替换的次数,这在数据脱敏或格式标准化中应用广泛。此外,`split`函数结合正则表达式,能够以更智能的方式切割字符串,例如按多个连续空格或特定标点符号拆分文本。

课程最后,李宁老师通过一组精选练习题,将上述知识点融会贯通,演示了如何解决实际工作中的字符串解析难题。掌握正则表达式,不仅能让你的Python代码更加简洁优雅,更能极大提升处理非结构化数据的效率。建议学习者边看边敲代码,亲手调试每一个例子,从而真正内化这一强大工具。

课程目录

课程目录12 集
  • 1 使用match函数匹配字符串 (16:21).mp4
  • 2 使用search函数在一个字符串中查找子字符串 (04:35).mp4
  • 3 匹配多个字符串 (04:49).mp4
  • 4 匹配任意单个字符 (07:49).mp4
  • 5 使用字符集 (06:46).mp4
  • 6 重复、可选和特殊字符 (23:42).mp4
  • 7 分组 (13:10).mp4
  • 8 匹配字符串的起始和结尾以及单词边界 (09:44).mp4
  • 9 使用findall和finditer函数查找所有匹配的结果 (08:50).mp4
  • 10 用sub和subn函数搜索与替换 (10:50).mp4
  • 11 使用split函数分隔字符串 (06:51).mp4
  • 12 练习题讲解 (07:52).mp4