Python 正则表达式全面指南
正则表达式是处理字符串的强大工具,在爬虫开发中用于从 HTML 代码中提取信息尤为有效。本文将全面介绍 Python 中正则表达式的使用方法。
1. 正则表达式基础
1.1 什么是正则表达式
正则表达式(Regular Expression)是一种用于匹配字符串中字符组合的模式。它有自己的特定语法结构,可以实现字符串的检索、替换、匹配验证等功能。
1.2 在线测试工具
可以使用开源中国提供的正则表达式测试工具进行测试:
- 匹配 Email 地址:
\w+@\w+\.\w+ - 匹配 URL:
https?://[^\s]+
2. Python re 模块
Python 通过 re 模块提供正则表达式功能,常用方法包括:
3. 常用匹配方法
3.1 match 方法
match() 从字符串开头匹配,成功返回匹配对象,失败返回 None。
分组匹配
使用 () 进行分组提取:
3.2 search 方法
search() 扫描整个字符串并返回第一个匹配:
3.3 findall 方法
findall() 返回所有匹配结果:
4. 高级匹配技巧
4.1 贪婪与非贪婪匹配
- 贪婪匹配:
.*(尽可能多匹配) - 非贪婪匹配:
.*?(尽可能少匹配)
4.2 修饰符
4.3 转义匹配
对特殊字符使用 \ 进行转义:
5. 实用方法
5.1 sub 替换
5.2 compile 预编译
6. 常用匹配模式总结
7. 实际应用示例
7.1 提取HTML内容
7.2 验证字符串格式
8. 性能优化建议
- 尽量使用非贪婪匹配
.*? - 复杂正则表达式使用
re.compile()预编译 - 合理使用修饰符,如
re.S和re.I - 避免过度使用回溯,可能导致性能问题
正则表达式是爬虫开发中不可或缺的工具,掌握它可以高效地从HTML中提取所需信息。建议多加练习,熟悉各种匹配模式的使用场景。

