# 用Python处理Excel数据 - 第3季 正则篇:独立导读

在数据处理的实战场景中,我们常遇到这样的困境:Excel里的数据并非整齐划一的“干净数据”,而是夹杂着杂乱的符号、不一致的格式或隐晦的非结构化信息。如何从一团乱麻中精准提取所需内容?《用Python处理Excel数据 - 正则篇》正是为了解决这一痛点而生,它是曾贤志老师系列课程的技术进阶之作。如果说前几季课程搭建了Python操作Excel的骨架,那么本季课程则赋予了其“透视”和“重构”数据的灵魂——正则表达式。

课程定位:从“规范化处理”到“智能化清洗”

许多初学者习惯于使用Excel自带的查找替换、分列或简单的字符串函数(如LEFT, MID, RIGHT)来处理数据。然而,面对复杂多变的实际业务数据(如从网页爬取的文本、用户随手填写的备注、跨系统导出的混合数据),传统方法往往力不从心。本课程的核心价值在于,它将Python强大的正则表达式引擎引入Excel数据清洗流程,让你具备处理**不规则、非标准化**数据的能力。这不仅是一次技术工具的学习,更是一种思维模式的升级:从“按位置截取”转向“按模式匹配”。

核心内容拆解:两翼齐飞,实战为王

课程内容逻辑严密,分为两大支柱:“Python正则表达式常用函数与方法”与“正则表达式元字符详解”,并通过高频实例应用贯穿始终。

**第一部分:掌握Python正则的“武器库”**
课程从`re`模块的基础入手,系统讲解了Python中调用正则的五大核心操作:
* **匹配与搜索**:深入剖析`re.match()`(从头匹配)与`re.search()`(任意位置查找)的本质区别,这是初学者极易混淆的难点。通过“提取金额”等实例,你将成为学会如何精准锁定目标字符串的起点。
* **拆分与查找**:讲解`re.split()`如何根据复杂规则分割字符串,以及`re.findall()`与`re.finditer()`在批量提取中的不同应用场景。前者返回列表,后者返回迭代器,课程通过“数据整理方法”实例,让你明白在数据量巨大时,迭代器带来的性能优势。
* **替换与验证**:学习`re.sub()`进行智能替换,以及如何利用正则判断字符串中是否包含特定数字模式,为后续的数据校验打下基础。

**第二部分:读懂正则语言的“语法字典”**
工欲善其事,必先利其器。第一部分解决了“怎么用Python调用”,第二部分则解决“怎么写正则表达式”。课程详细解读了元字符的奥秘:
* **单个字符匹配**:掌握`.`(任意字符)、`\d`(数字)、`\w`(单词字符)等基础元字符。
* **特殊功能**:课程虽在摘要末尾截断,但结合标题“单词整理”实例,可推断将涵盖`^`(开头)、`$`(结尾)、`\b`(单词边界)等关键概念,帮助你实现如“仅提取完整单词”而非“部分匹配”的高级需求。

学习建议:为何你必须学习正则?

1. **效率倍增**:原本需要数十行Python代码才能完成的复杂字符串清洗任务,使用正则往往只需短短一行。
2. **解决难题**:面对“手机号中间四位脱敏”、“从长文本中提取所有邮箱地址”、“统一日期格式”等经典难题,正则表达式是最优解。
3. **衔接大数据**:正则不仅是Excel处理的利器,更是日志分析、网络爬虫、文本挖掘等领域的通用技能,学好正则,等同于获得了一把开启大数据处理之门的钥匙。

结语

《用Python处理Excel数据 - 正则篇》并非孤立存在,它是曾贤志老师数据体系课中承上启下的关键一环。如果你已经掌握了基础的Pandas操作,本节课程将帮你打通“非结构化文本”到“结构化数据”的最后一公里。建议学习时,务必亲手敲写每一个实例代码,特别是区分`match`与`search`、`findall`与`finditer`的细节差异,并尝试修改正则表达式中的元字符,观察匹配结果的变化。这将是你从“数据搬运工”迈向“数据分析师”的重要里程碑。

课程目录

课程目录37 集
  • 1-1 [Python正则表达式常用函数与方法使用] 1.01 Python正则表达式的两种使用方法 (09:12).mp4
  • 1-2 [Python正则表达式常用函数与方法使用] 1.02 从头匹配字符串(match) (17:45).mp4
  • 1-3 [Python正则表达式常用函数与方法使用] 1.03 实例应用(提取金额) (12:44).mp4
  • 1-4 [Python正则表达式常用函数与方法使用] 1.04 任意匹配字符串(search) (09:09).mp4
  • 1-5 [Python正则表达式常用函数与方法使用] 1.05 实例应用(提取单价与数量求金额) (11:47).mp4
  • 1-6 [Python正则表达式常用函数与方法使用] 1.06 拆分字符串(split) (10:39).mp4
  • 1-7 [Python正则表达式常用函数与方法使用] 1.07 实例应用(整理数据方法1) (14:51).mp4
  • 1-8 [Python正则表达式常用函数与方法使用] 1.08 查找字符串-1(findall) (09:25).mp4
  • 1-9 [Python正则表达式常用函数与方法使用] 1.09 实例应用(数据整理方法2) (08:58).mp4
  • 1-10 [Python正则表达式常用函数与方法使用] 1.10 查找字符串-2(finditer) (09:54).mp4
  • 1-11 [Python正则表达式常用函数与方法使用] 1.11 实例应用(表格数据整理) (11:17).mp4
  • 1-12 [Python正则表达式常用函数与方法使用] 1.12 Sub函数与方法 (12:01).mp4
  • 1-13 [Python正则表达式常用函数与方法使用] 1.13 实例应用(判断字符串中的数字) (10:46).mp4
  • 2-1 [正则表达式元字符详解] 2.01 元字符之单个字符(字母、数字、任意) (16:27).mp4
  • 2-2 [正则表达式元字符详解] 2.02 实例应用(单词整理) (14:18).mp4
  • 2-3 [正则表达式元字符详解] 2.03 元字符之单个字符(字符组) (13:18).mp4
  • 2-4 [正则表达式元字符详解] 2.04 实例应用(统计达标的科目数) (06:53).mp4
  • 2-5 [正则表达式元字符详解] 2.05 元字符之计数功能(长度表示) (08:21).mp4
  • 2-6 [正则表达式元字符详解] 2.06 实例应用(提取数据重构表格) (12:49).mp4
  • 2-7 [正则表达式元字符详解] 2.07 元字符之位置匹配符(单词边界、开头结尾) (11:26).mp4
  • 2-8 [正则表达式元字符详解] 2.08 实例应用(统计以26个字母开头的单词个数) (10:30).mp4
  • 2-9 [正则表达式元字符详解] 2.09 分组捕获 (10:41).mp4
  • 2-10 [正则表达式元字符详解] 2.10 实例应用(对字符串中的分数进行统计和排序) (12:34).mp4
  • 2-11 [正则表达式元字符详解] 2.11 分组引用 (18:27).mp4
  • 2-12 [正则表达式元字符详解] 2.12 实例应用(汇总文本中的商品金额) (10:54).mp4
  • 2-13 [正则表达式元字符详解] 2.13 分组选择匹配 (16:28).mp4
  • 2-14 [正则表达式元字符详解] 2.14 实例应用(按条件筛选金额) (11:22).mp4
  • 2-15 [正则表达式元字符详解] 2.15 非捕获分组 (12:47).mp4
  • 2-16 [正则表达式元字符详解] 2.16 实例应用(多条件提取数据汇总) (16:21).mp4
  • 2-17 [正则表达式元字符详解] 2.17 零宽断言 (18:07).mp4
  • 2-18 [正则表达式元字符详解] 2.18 实例应用(将考号规范化) (09:12).mp4
  • 2-19 [正则表达式元字符详解] 2.19 贪婪与非贪婪(惰性) (10:41).mp4
  • 2-20 [正则表达式元字符详解] 2.20 实例应用(整理零乱的员工信息) (15:25).mp4
  • 2-21 [正则表达式元字符详解] 2.21 re.Match对象常用方法与属性 (30:29).mp4
  • 3-1 [综合应用] 综合应用案例1:提取指定数据到其它表存储 (18:25).mp4
  • 3-2 [综合应用] 综合应用案例2:提取指定数据并做数据汇总 (11:25).mp4
  • 3-3 [综合应用] 综合应用案例3:将不规范时间处理成规范时间 (15:37).mp4