从基础知识到应用实例,一站式掌握 Python 正则表达式
创始人
2025-01-09 22:37:50
0次

前言

大家好,我是阔升。今天,我要和大家聊聊 Python 中的正则表达式。正则表达式可谓是编程界的“瑞士军刀”,能用来处理各种复杂的字符串操作。本文将通过几个有趣的例子,带你学习正则表达式。

正则表达式基础

在 Python 中,我们主要使用 re 模块来处理正则表达式。首先,我们先来了解几个基本概念和常用操作。

导入 re 模块

import re 

匹配模式

  • . 匹配任意一个字符(除了换行符)
  • ^ 匹配字符串的开始
  • $ 匹配字符串的结尾
  • * 匹配前面的字符零次或多次
  • + 匹配前面的字符一次或多次
  • ? 匹配前面的字符零次或一次
  • {n} 匹配前面的字符恰好 n 次
  • {n,} 匹配前面的字符至少 n 次
  • {n,m} 匹配前面的字符至少 n 次,至多 m 次

正则表达式实例讲解

1. 匹配邮箱地址

正则表达式可以用来匹配邮箱地址。一个简单的邮箱地址匹配模式如下:

import re  # 匹配邮箱地址的正则表达式 pattern = r'[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+' email = "example@example.com"  # 使用 re.match() 匹配邮箱地址 match = re.match(pattern, email) if match:     print("邮箱格式正确") else:     print("邮箱格式不正确") 

运行结果:

邮箱格式正确 

2. 提取电话号码

假设我们要从一段文本中提取出所有的电话号码:

import re  # 示例文本 text = "联系人:小明,电话:010-12345678;联系人:小红,电话:020-87654321。"  # 匹配电话号码的正则表达式 pattern = r'\d{3}-\d{8}|\d{4}-\d{7}'  # 使用 re.findall() 提取电话号码 phones = re.findall(pattern, text) print("找到的电话号码:", phones) 

运行结果:

找到的电话号码: ['010-12345678', '020-87654321'] 

3. 替换文本中的敏感词

有时候我们需要将文本中的敏感词替换为其他字符:

import re  # 示例文本 text = "这里有一些敏感词,比如赌博,毒品。"  # 匹配敏感词的正则表达式 pattern = r'赌博|毒品'  # 使用 re.sub() 替换敏感词 replaced_text = re.sub(pattern, '**', text) print("替换后的文本:", replaced_text) 

运行结果:

替换后的文本: 这里有一些敏感词,比如**,**。 

常用正则表达式函数

re.match()

re.match 用于从字符串的起始位置匹配一个模式:

import re  # 示例模式和字符串 pattern = r'\d+' string = "123abc"  # 使用 re.match() 从起始位置匹配 result = re.match(pattern, string) if result:     print("匹配成功:", result.group()) else:     print("匹配失败") 

运行结果:

匹配成功: 123 

re.search()

re.search 用于扫描整个字符串并返回第一个成功的匹配:

import re  # 示例模式和字符串 pattern = r'\d+' string = "abc123def"  # 使用 re.search() 扫描整个字符串 result = re.search(pattern, string) if result:     print("匹配成功:", result.group()) else:     print("匹配失败") 

运行结果:

匹配成功: 123 

re.findall()

re.findall 返回字符串中所有非重叠的匹配模式:

import re  # 示例模式和字符串 pattern = r'\d+' string = "abc123def456ghi789"  # 使用 re.findall() 找到所有匹配 results = re.findall(pattern, string) print("所有匹配项:", results) 

运行结果:

所有匹配项: ['123', '456', '789'] 

re.sub()

re.sub 用于替换字符串中匹配的模式:

import re  # 示例文本 text = "今天的温度是30度,明天的温度是28度。"  # 匹配数字的正则表达式 pattern = r'\d+'  # 使用 re.sub() 替换数字 replaced_text = re.sub(pattern, 'XX', text) print("替换后的文本:", replaced_text) 

运行结果:

替换后的文本: 今天的温度是XX度,明天的温度是XX度。 

结语

正则表达式在 Python 中是一个非常强大的工具,掌握它能够大大提高我们处理字符串的效率。希望通过本文的讲解,大家能对正则表达式有一个更全面的理解。如果你有任何问题或建议,欢迎在评论区留言,我们下期再见!


记得给这篇文章点个赞,分享给更多的朋友哦!你的支持是我创作的最大动力!

Happy coding! 😄

相关内容

热门资讯

实测交流透视挂!宝玛大厅ai智... 实测交流透视挂!宝玛大厅ai智能透视挂教程,宝玛大厅破解软件经验(本来有挂辅助)1、每一步都需要思考...
总算了解辅助器!朱雀吴江三缺一... 总算了解辅助器!朱雀吴江三缺一ai智能透视辅助挂技巧,朱雀吴江三缺一好像是有挂(有辅助挂细节)朱雀吴...
今日公布透视!九五至尊大厅ai... 今日公布透视!九五至尊大厅ai智能透视插件,九五至尊大厅有没有透视挂窍门(切实有挂技术)1、在九五至...
玩家必看科普开挂!聚闲麻将ai... 玩家必看科普开挂!聚闲麻将ai智能透视辅助挂软件,聚闲麻将总是真的有挂(有辅助挂方式)聚闲麻将能透视...
据报道开挂!旅游娱乐ai智能开... 据报道开挂!旅游娱乐ai智能开挂工具,旅游娱乐辅助工具演示(一直有挂教学)1、全新机制【旅游娱乐ai...
一分钟揭秘开挂!决胜朋来麻将a... 一分钟揭秘开挂!决胜朋来麻将ai智能透视辅助挂教程,决胜朋来麻将真是真的是有挂(有辅助挂总结)1、首...
如何分辨真伪透视!红牛ai智能... 如何分辨真伪透视!红牛ai智能透视攻略,红牛是不是有挂经验(真是有挂技术)1、操作简单,无需红牛手机...
2分钟细说辅助器!江湖大庆麻将... 2分钟细说辅助器!江湖大庆麻将ai智能透视辅助挂攻略,江湖大庆麻将竟然是真的有挂(有辅助挂头条)1、...
总算清楚透视挂!老夫子厅ai智... 总算清楚透视挂!老夫子厅ai智能透视挂技巧,老夫子厅怎么开挂课程(好像发现有挂)老夫子厅破解侠是真的...
解密关于辅助!菜鸟麻将ai智能... 解密关于辅助!菜鸟麻将ai智能透视辅助挂脚本,菜鸟麻将总是存在有挂(有辅助挂存在)1、用户打开应用后...