Python 正则就一个模块:re(内置,无需安装)。
核心流程:“编译 → 匹配 → 提取/替换”3 步曲,下面用会计小例子带你速通。
一、最常用的 6 个函数(先背再拆)
| 函数 | 作用 | 返回 |
|---|---|---|
| re.search(pat, txt) | 找第一次出现 | Match 对象 / None |
| re.findall(pat, txt) | 找所有出现 | list 字符串 |
| re.sub(pat, repl, txt) | 替换 | 新字符串 |
| re.split(pat, txt) | 切分 | list |
| re.match(pat, txt) | 只从开头匹配 | Match / None |
| re.compile(pat) | 预编译,提速复用 | Pattern 对象 |
二、快速上手 4 例(会计场景)
三、必会元字符(13 个元字符一张表背完)
| 符号 | 意义 | 记忆 |
|---|---|---|
| . | 任意字符除换行 | dot |
| \d | 数字 [0-9] | digit |
| \D | 非数字 | 大写=反义 |
| \w | 字母数字下划线 | word |
| \s | 空白字符 | space |
| ^ | 开头 | 上箭头 |
| $ | 结尾 | 美元尾 |
| * | 0 或多次 | 星花 |
| + | 1 或多次 | 加号 |
| ? | 0 或 1 次 | 问号 |
| {n,m} | 出现 n 到 m 次 | 区间 |
| [] | 字符集 | 自定义 |
| () | 分组捕获 | 提取 |
四、分组与命名分组(提取神器)
五、预编译提速(批量跑表时必用)
一次编译多次使用,10 万行以上明显快。
六、贪婪 / 非贪婪
默认 .* 会吞到最远匹配,加 ? 变非贪婪:
七、常用 flag
组合:
八、pandas 里的正则捷径
一句话总结
背会 re.sub / re.findall / re.search + 元字符表,就能解决 90% 文本清洗任务;大文件记得 re.compile 先编译,再交给 pandas 的 .str 方法批量跑。