正则表达式(Regular Expression,简称 Regex)是用于匹配字符串模式的工具,常用来查找、验证或替换文本中的特定内容。本文小编和大家分享 Python 正则表达式的相关知识。
一、正则表达式概述
主流的编程语言(如 Java、C#、Python 等)均内置正则表达式支持,且语法高度统一。大家可以先了解正则表达式的基本概念和语法,然后再来熟悉 Python 的中正则表达式的使用。
(一)正则表达式的定义与用途
正则表达式是一个由普通字符(例如字母 a 到 z)和特殊字符(称为元字符)组成的字符串,这个字符串构成了搜索模式(pattern),该模式被用来在文本中进行搜索、匹配、替换或分割操作。
正则表达式主要有三大用途:
文本搜索与匹配:快速判断一段文本中是否包含符合特定模式的子串。例如,检查一个字符串是否是一个有效的电子邮件地址格式;
文本替换:将文本中所有匹配特定模式的部分替换为新的内容。例如,将文档中所有的日期格式从 YYYY-MM-DD 统一修改为 MM/DD/YYYY;
文本提取与分割:从大段文本中精确地提取出我们关注的部分,或者根据特定的分隔符将文本切分成数组。例如,从日志文件中提取所有的 IP 地址,或者用逗号分割一个 CSV 字符串。
(二)正则表达式的应用场景
正则表达式几乎渗透在编程和日常文本处理的方方面面。最常见的应用场景包括:
1、数据验证
这是正则表达式最经典的应用之一,确保用户输入的数据符合预期的格式。例如:
验证邮箱地址:检查输入是否像 username@domain.com;
验证手机号码:检查是否符合国家/地区的手机号格式(如中国的 11 位数字);
验证密码强度:要求密码必须包含大小写字母、数字和特殊字符;
验证日期格式:确保日期是 2025-12-28 或 12/28/2025 等有效格式;
验证身份证号:匹配特定编码规则的身份证号码。
2、文本搜索与过滤
在大量文本中快速定位信息。例如:
日志分析:在服务器日志中搜索所有 ERROR 或 WARN 级别的记录;
代码搜索:在 IDE 或编辑器中,使用正则表达式搜索所有函数定义(如 def xxx(...))或特定变量名;
文档内容查找:在长文档中查找所有出现的电话号码或网址。
3、文本替换与清洗
批量修改文本内容,使其规范化。
格式化数据:将电话号码从 12345678901 格式化为 123-4567-8901;
清理数据:移除文本中多余的空白字符(如多个连续空格或制表符);
敏感信息脱敏:将文本中的身份证号替换为 ***,如 110101199001011234 替换为 110101********1234;
代码重构:批量重命名变量或函数名。
4、文本提取与解析
从非结构化的文本中提取结构化的数据。
网页爬虫:从 HTML 代码中提取所有的链接 (href="...") 或图片地址 (src="...")。
解析配置文件:读取 key = value 格式的配置文件。
提取特定数据:从一段文本中提取所有出现的金额(如 ¥100.50 或 $99.99)。
5、字符串分割
使用复杂的规则,而不仅仅是单个字符,来分割字符串。
(三)正则表达式工作流程
正则表达式在数据处理中的工作流程如下图所示:

受文章篇幅所限,下文将继续介绍 Python 正则表达式的相关知识。