当前位置:首页 > Python > 正文

掌握Python正则表达式(re模块从入门到实战)

在数据处理、文本分析和自动化脚本开发中,Python正则表达式是一项非常强大的工具。通过Python内置的re模块,我们可以高效地完成复杂的字符串匹配任务。本文将带你从零开始学习正则表达式,即使你是编程小白也能轻松上手!

掌握Python正则表达式(re模块从入门到实战) Python正则表达式 re模块 字符串匹配 正则表达式教程 第1张

什么是正则表达式?

正则表达式(Regular Expression,简称regex或regexp)是一种用于匹配字符串中字符组合的模式。它可以用来搜索、替换、验证等操作。例如,验证邮箱格式、提取网页中的电话号码、批量替换文本等。

Python中的re模块

Python通过标准库中的 re 模块提供对正则表达式的支持。使用前只需导入:

import re

常用函数介绍

1. re.search(pattern, string)

在字符串中搜索第一个匹配项,返回一个Match对象,若无匹配则返回None。

import reresult = re.search(r'\d+', '今天温度是25度')if result:    print("找到数字:", result.group())  # 输出:找到数字: 25

2. re.findall(pattern, string)

返回字符串中所有非重叠匹配项的列表。

import retext = "电话:138-1234-5678 和 139-8765-4321"phones = re.findall(r'\d{3}-\d{4}-\d{4}', text)print(phones)  # 输出:['138-1234-5678', '139-8765-4321']

3. re.sub(pattern, repl, string)

将字符串中所有匹配pattern的部分替换为repl。

import retext = "价格:$100,折扣后$80"new_text = re.sub(r'\$(\d+)', r'¥\1', text)print(new_text)  # 输出:价格:¥100,折扣后¥80

常用正则表达式符号

  • .:匹配任意字符(除换行符)
  • \d:匹配数字 [0-9]
  • \w:匹配字母、数字、下划线
  • *:匹配前面的字符0次或多次
  • +:匹配前面的字符1次或多次
  • ?:匹配前面的字符0次或1次
  • {n}:精确匹配n次
  • ^:匹配字符串开头
  • $:匹配字符串结尾

实战小例子:验证邮箱格式

下面是一个简单的邮箱验证示例,展示了如何使用Python正则表达式进行格式校验:

import redef validate_email(email):    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'    return bool(re.match(pattern, email))# 测试print(validate_email("user@example.com"))   # Trueprint(validate_email("invalid-email"))     # False

总结

通过本篇正则表达式教程,你已经掌握了Python中re模块的基本用法、常用函数以及常见符号的含义。无论是进行简单的字符串匹配,还是复杂的文本提取与替换,re模块都能助你一臂之力。

建议多动手练习,尝试用正则表达式解决实际问题,比如日志分析、表单验证、数据清洗等。熟能生巧,你会发现正则表达式是Python编程中不可或缺的利器!

关键词回顾:Python正则表达式re模块字符串匹配正则表达式教程