Python基础: 正则表达式入门指南
正则表达式Regular Expression简称 Regex是处理字符串的“瑞士军刀”。它能用一套特定的语法规则高效地完成字符串的匹配、查找、替换和提取。在 Python 中我们通过内置的re模块来使用它。一、 核心方法match, search, findall, subre模块提供了多个方法其中最常用的是以下四个。理解它们的区别是掌握正则的第一步。方法功能描述返回值re.match从字符串开头进行匹配。如果开头不符合规则则匹配失败。匹配成功返回匹配对象失败返回None。re.search扫描整个字符串返回第一个匹配成功的结果找到后即停止。匹配成功返回匹配对象失败返回None。re.findall扫描整个字符串找到所有匹配项。返回一个包含所有匹配结果的列表若无匹配则返回空列表[]。re.sub搜索字符串并将所有匹配项替换为指定内容。返回替换后的新字符串。代码示例import re s lanshis python lanshishujia123anhuiligpython ong 1. match: 从开头匹配失败返回 None print(re.match(python, s)) # 输出: None 2. search: 搜索整个字符串找到第一个就停 result_search re.search(python, s) print(result_search) # 输出: re.Match object; span(8, 14), matchpython print(result_search.group()) # 输出: python (获取匹配的值) print(result_search.span()) # 输出: (8, 14) (获取匹配的下标) 3. findall: 找到所有匹配项返回列表 result_findall re.findall(python, s) print(result_findall) # 输出: [python, python] 4. sub: 替换所有匹配项 result_sub re.sub(python, 999, s) print(result_sub) # 输出: lanshis 999 lanshishujia123anhuilig999 ong二、 元字符速查表元字符是正则表达式的“积木”掌握它们是构建复杂规则的关键。1. 单字符匹配元字符功能描述.匹配任意一个字符除了换行符\n。[]匹配[]中列举的任意一个字符如[abc]匹配 a, b 或 c。\d匹配一个数字等价于[0-9]。\D匹配一个非数字字符。\s匹配任意空白字符如空格、Tab 键 (\t)、换行符 (\n) 等。\w匹配一个“单词字符”包括字母、数字和下划线等价于[a-zA-Z0-9_]。\W匹配一个非单词字符。2. 数量词匹配元字符功能描述*匹配前一个字符出现0 次或无数次。匹配前一个字符出现1 次或无数次。?匹配前一个字符出现0 次或 1 次。{m}匹配前一个字符恰好出现 m 次。{m,}匹配前一个字符至少出现 m 次。{m,n}匹配前一个字符出现m 到 n 次。3. 边界与分组匹配元字符功能描述^匹配字符串的开头。$匹配字符串的结尾。\b匹配一个单词的边界如空格或标点与字符之间。\B匹配非单词边界。(...)将括号内的内容作为一个分组可以提取或后续引用。(?:...)非捕获分组将括号内内容作为整体处理但不保存匹配结果效率更高。三、 实战案例下面是一些基于上述元字符的常见应用场景。1. 提取特定类型字符import re s lanshishujai##123456python anhui lig gong7* 找出所有数字 print(re.findall(r\d, s)) 输出: [1, 2, 3, 4, 5, 6, 7] 找出所有特殊字符非单词字符 print(re.findall(r\W, s)) 输出: [#, #, , , , , , , , *] 找出所有英文字母 print(re.findall(r[a-zA-Z], s)) 输出: [l, a, n, s, h, i, s, h, u, j, a, i, ...]2. 验证账号格式需求账号只能由字母和数字组成长度限制在 6 到 10 位。^: 匹配开头[a-z0-9]: 字符集匹配小写字母或数字{6,10}: 数量词匹配前面的字符集 6 到 10 次$: 匹配结尾s abc112233 pattern r^[a-z0-9]{6,10}$ print(re.findall(pattern, s)) # 输出: [abc112233] (匹配成功)3. 验证 QQ 号格式需求纯数字长度 5-11 位且第一位不能为 0。^: 匹配开头[1-9]: 第一位必须是 1-9 的数字[0-9]{4,10}: 后面跟着 4 到 10 位的任意数字加上第一位总长度为 5-11 位$: 匹配结尾s 2598144874 pattern r^[1-9][0-9]{4,10}$ print(re.findall(pattern, s)) # 输出: [2598144874] (匹配成功)4. 提取网页 URL这是一个相对复杂的例子用于从文本中提取以http://或https://开头的网址。text 配网页地址ssshttps://sc.chinaz.com/tupian/index_1.html配网页地址 正则表达式解析 http[s]?:// - 匹配 http:// 或 https:// (?: ... ) - 非捕获分组匹配括号内的任意字符一次或多次 [a-zA-Z]|[0-9] - 匹配字母或数字 [$-_.] - 匹配 URL 中常见的特殊符号 [!*\(\)] - 匹配括号等符号需要转义 (?:%[0-9a-fA-F][0-9a-fA-F]) - 匹配 URL 编码如 %20 url_pattern rhttp[s]?://(?:[a-zA-Z]|[0-9]|[$-_.]|[!*\(\)]|(?:%[0-9a-fA-F][0-9a-fA-F])) result re.findall(url_pattern, text) print(result) 输出: [https://sc.chinaz.com/tupian/index_1.html]四、 小贴士关于r标记在定义正则表达式字符串时强烈建议在字符串前加上r例如r\d。这表示一个“原始字符串”raw string。在普通字符串中反斜杠\是转义字符例如\n代表换行。而在正则中\d代表数字。如果不加rPython 会先对\d进行转义可能导致意料之外的结果。使用r\d可以确保反斜杠被原封不动地传递给re模块避免混淆。

相关新闻

Linux IO编程

Linux IO编程

标准IO概念 ## Linux操作系统分层结构 虚拟内存区间划分## IO介绍## 系统调用与库函数的区别## 流## FILE对象标准IO函数缓冲区 数据流动流程图## 标准IO的缓冲区## 缓冲区的刷新时机文件IO概念 ## 文件IO与标准IO的对比## 文件描述符文件IO函数## 目录遍历操作函数库的…

2026/8/1 5:14:44 阅读更多 →
BepInEx终极指南:5步掌握Unity游戏插件框架,开启无限创意可能

BepInEx终极指南:5步掌握Unity游戏插件框架,开启无限创意可能

BepInEx终极指南:5步掌握Unity游戏插件框架,开启无限创意可能 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx游戏插件框架是Unity游戏模组开发者的…

2026/8/1 5:13:44 阅读更多 →
10款AI降重工具测评:学术论文改写效果对比

10款AI降重工具测评:学术论文改写效果对比

1. 项目概述作为一名长期关注AI工具应用的科技博主,我最近花了三周时间深度测试了市面上主流的10款AI降重工具。这次测评主要面向高校本科生群体,针对论文写作、作业提交等学术场景下的实际需求展开。不同于市面上泛泛而谈的推荐清单,我会从底…

2026/8/1 5:13:44 阅读更多 →

最新新闻

AI时代程序员还需要深究源码吗?

AI时代程序员还需要深究源码吗?

最近后台收到很多粉丝留言,说的是程序员究竟要不要去读源码?当下行情,面试什么样的薪资/岗位才会被问到源码?对此,我的回答是:一定要去读,并且要提到日程上来!据不完全统计&#xff…

2026/8/1 8:39:15 阅读更多 →
Linux磁盘管理与存储技术实战笔记

Linux磁盘管理与存储技术实战笔记

Linux 磁盘管理与存储技术实战笔记 📒 从 GPT 分区到 RAID 阵列,再到 LVM 逻辑卷——一文掌握 Linux 磁盘管理的核心武器。 目录 GPT 分区方案gdisk:GPT 分区管理工具wipefs:磁盘信息清理工具parted:全能分区管理工具…

2026/8/1 8:39:15 阅读更多 →
Windows 10终极指南:三步快速部署Android子系统完整教程

Windows 10终极指南:三步快速部署Android子系统完整教程

Windows 10终极指南:三步快速部署Android子系统完整教程 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 还在羡慕Windows 11用户能无缝…

2026/8/1 8:39:15 阅读更多 →
解密Cursor试用限制:开源工具实现AI编程环境无限重置的技术剖析

解密Cursor试用限制:开源工具实现AI编程环境无限重置的技术剖析

解密Cursor试用限制:开源工具实现AI编程环境无限重置的技术剖析 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Your request has been blocked as our system has detected suspicious activity / Youve reached your trial reques…

2026/8/1 8:39:15 阅读更多 →
3大突破性技术:QuPath如何重构数字病理分析工作流

3大突破性技术:QuPath如何重构数字病理分析工作流

3大突破性技术:QuPath如何重构数字病理分析工作流 【免费下载链接】qupath QuPath - Open-source bioimage analysis for research 项目地址: https://gitcode.com/gh_mirrors/qu/qupath 在数字病理分析领域,传统商业软件的高昂成本和封闭生态长期…

2026/8/1 8:39:15 阅读更多 →
数据库运维驶入AI深水区,云和恩墨zCloud  Bethune X新版本给出“三维破局”答案

数据库运维驶入AI深水区,云和恩墨zCloud Bethune X新版本给出“三维破局”答案

数据库类型不断扩张,国产品牌加速进入核心业务系统;混合云、多云架构成为企业IT建设常态;运维人才供给压力持续加大……当“多库并存、多云交织、人才紧缺”共同作用,企业数据库运维正被推向系统性承压的新阶段,破局之…

2026/8/1 8:38:15 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →