logo
58

正则表达式

⏱️ 40分钟

正则表达式(Regex):高效提取文本模式

你现在可能会困惑什么

“regex 看不懂,符号太多了。”

先掌握常用场景(邮箱、订单号、手机号),不必一次记全语法。

一句话定义

Regex 是字符串匹配规则,用于查找、提取、替换文本。

生活类比

文本像货架,regex 是筛选条件标签。

最小可运行例子

import re
text = "email: hello@example.com"
m = re.search(r"[\w.-]+@[\w.-]+\.\w+", text)
print(m.group())

课堂小测(5 分钟)

  1. 提取文本中的所有订单号(如 A-123)。
  2. 提取全部 email。
  3. re.sub() 脱敏数字。

课堂小测参考答案与判分点

  • 参考答案方向:能写出可运行代码,并覆盖题目中的核心条件与边界输入。
  • 判分点 1(正确性):主流程结果正确,关键分支可执行。
  • 判分点 2(可读性):变量命名清晰,结构不过度嵌套。
  • 判分点 3(健壮性):对空值、类型错误或异常输入有基础保护。

迁移任务(课后)

extract_contacts(text) 返回 emails/phones 两个列表。

本节验收标准

你能独立做到:

  • 使用 search/findall/sub
  • 写基础 pattern 并调试
  • 完成文本提取与脱敏

常见报错与调试步骤(新手版)

  • 报错看不懂:先读最后一行错误类型(如 TypeErrorNameError),再回到对应代码行定位。
  • 不确定变量值:在关键位置临时 print(变量, type(变量)),先确认数据是否符合预期。
  • 改了代码却没生效:确认文件已保存、运行的是当前文件、终端环境(venv)是否正确。

常见误区

  • 误区:regex 越复杂越好。
  • 正解:可读可维护优先。