Python正则表达式入门:从零掌握文本提取与替换

发布时间:2026/10/23 17:37:01
Python正则表达式入门:从零掌握文本提取与替换 简介这份资源是面向Python初学者与进阶学习者的正则表达式专题PDF资料聚焦文本匹配、提取与替换等常见场景帮助读者系统掌握re模块的核心用法与实战思路。压缩包内仅含1个PDF文件整体约661KB轻量便携适合在通勤或碎片时间集中阅读。内容围绕正则语法基础、元字符、量词、分组与贪婪/非贪婪匹配等知识点展开并配有示例说明便于对照练习与查阅。目前已有260人学习下载可作为日常开发中处理日志解析、表单校验、爬虫数据清洗等任务的速查手册。对于希望补齐字符串处理短板、提升代码效率的Python学习者而言这份资料结构紧凑、重点突出能快速建立正则表达式的知识框架并应用于实际项目。1. 零基础搞懂正则表达式它到底能帮你省下多少事你有没有过这种经历在一大段文字里找所有手机号手动翻了三遍还是漏了两个或者想把一份乱糟糟的日志里所有日期挑出来复制粘贴到眼花。这种“在一堆字符里按规则捞东西”的活儿正则表达式就是专门干这个的。你可以把它想象成一种“搜索暗号”。普通搜索只会找一模一样的字比如搜“abc”就只能找到“abc”。但正则能表达“三个数字后面跟一个横线再跟四个数字”这种模糊规则凡是符合这个形状的内容它全给你揪出来。Python 里内置了re模块不用额外装东西写几行代码就能用。这份资源是一篇讲 Python 正则表达式的会员文章适合刚学完 Python 基础语法、能写简单循环和函数但一看到\d、.*就头大的新手。它不要求你懂编译原理也不要求你背完整张语法表只要求你愿意打开编辑器跟着敲。学完它你至少能自己写出匹配邮箱、提取日期、替换敏感词的代码而不是每次遇到文本处理就去网上复制一段看不懂的代码。2. 为什么值得先学正则三个你马上会遇到的场景2.1 场景一从一堆文本里精准捞数据假设你有一份用户留言里面混着手机号、邮箱和订单号。你想把手机号全部提取出来。不用正则的话你可能得写循环、判断字符是不是数字、再判断长度……代码又长又容易漏。用正则一行就能搞定import re text 联系我13812345678备用15987654321邮箱 testexample.com phones re.findall(r1[3-9]\d{9}, text) print(phones) # [13812345678, 15987654321]re.findall的意思是“找出所有符合规则的片段”。r1[3-9]\d{9}这个规则拆开看1表示开头必须是 1[3-9]表示第二位是 3 到 9 之间的任意一个数字\d{9}表示后面跟着 9 个数字。合起来就是“1 开头、第二位 3 到 9、总共 11 位数字”。你不需要背写的时候对照着改数字就行。2.2 场景二批量替换和清洗数据做数据分析时经常遇到日期格式不统一有的是2024-01-05有的是2024/01/05。你想全部换成统一格式。正则的re.sub就是干这个的import re raw 日期12024-01-05日期22024/01/06 clean re.sub(r(\d{4})[-/](\d{2})[-/](\d{2}), r\1年\2月\3日, raw) print(clean) # 日期12024年01月05日日期22024年01月06日这里(\d{4})用括号把年份“分组”存起来替换时用\1取第一组\2取第二组。[-/]表示横线或斜杠都行。这种“找规律再统一改”的操作手动做十次错八次正则一次就对。2.3 场景三表单验证的第一道防线写 Web 应用时用户输入的邮箱、手机号、密码格式对不对前端可以校验后端也必须再验一遍。正则就是最轻量的验证工具import re def is_valid_email(email): pattern r^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\.[a-zA-Z]{2,}$ return re.match(pattern, email) is not None print(is_valid_email(hellotest.com)) # True print(is_valid_email(hello.com)) # False^表示开头$表示结尾中间是“用户名域名.后缀”的结构。re.match从开头匹配匹配成功返回对象失败返回None。这段代码你直接复制去用改一改就能验证手机号、身份证号。提示正则不是万能的特别复杂的嵌套结构比如 HTML别硬用正则容易翻车。新手先把上面三种场景练熟已经能解决 80% 的日常文本处理。3. 新手第一步把第一个正则跑起来3.1 环境准备你只需要 Python 和一个编辑器如果你已经装过 Python打开终端输入python能进交互环境那就够了。没装的话去官网下载安装包安装时勾选“Add Python to PATH”。编辑器用 VS Code、PyCharm 甚至记事本都行新手建议用 VS Code免费且提示友好。建一个文件叫regex_demo.py后面所有代码都写在这里。运行方式终端里输入python regex_demo.py或者 VS Code 里点右上角运行按钮。3.2 第一个例子匹配字符串里的数字import re text 我买了3个苹果花了15元又买了2个梨花了8元 numbers re.findall(r\d, text) print(numbers) # [3, 15, 2, 8]\d代表一个数字字符代表“前面的东西出现一次或多次”。所以\d就是“一个或多个连续数字”。re.findall把找到的每一段都放进列表返回。你运行一下看到[3, 15, 2, 8]就说明成功了。3.3 第二个例子用分组提取年月日import re date_str 今天是2024年3月15日明天是2024年3月16日 pattern r(\d{4})年(\d{1,2})月(\d{1,2})日 matches re.findall(pattern, date_str) print(matches) # [(2024, 3, 15), (2024, 3, 16)] for year, month, day in matches: print(f年{year}月{month}日{day})(\d{4})匹配 4 个数字并分组(\d{1,2})匹配 1 到 2 个数字。re.findall如果规则里有分组返回的就是元组列表。这样你就能单独拿到年、月、日方便后续处理。3.4 第三个例子替换敏感词import re comment 这个产品太差了差评差劲 clean re.sub(r差[评劲], **, comment) print(clean) # 这个产品太**了****[评劲]表示“评”或“劲”任意一个字符。re.sub把匹配到的内容替换成**。注意这里只是演示实际敏感词库要复杂得多但思路是一样的。注意写正则时建议用原始字符串r...避免反斜杠被 Python 转义。比如r\d就是两个字符不用r的话\d在某些情况下会出问题。4. 避坑指南新手最容易翻车的五个地方4.1 现象re.match什么都匹配不到原因re.match只从字符串开头匹配如果你要匹配的内容在中间它直接返回None。 解决改用re.search它扫描整个字符串找第一个匹配。或者你在规则开头加.*让它跳过前面的内容。4.2 现象\d写成了\\d或者d原因在普通字符串里\d有特殊含义但如果你忘了加rPython 可能先处理转义。写成\\d又变成了匹配反斜杠加 d。 解决统一用r\d记住r开头。4.3 现象贪婪匹配吃掉了太多内容原因.*默认是贪婪的会尽可能往后吃。比如r.*匹配ab会整个吃掉而不是只匹配a。 解决在*或后面加?变成非贪婪r.*?就只匹配到第一个。4.4 现象中文匹配不到原因\w默认只匹配字母、数字、下划线不包含中文。 解决匹配中文用[\u4e00-\u9fa5]或者直接用.?配合re.S标志。4.5 现象代码跑一次对换一段文本就错原因正则写得太死比如写死了长度或特定字符。 解决多用\d、\w、[^,]这种弹性表达少用固定字符串。每次换文本先拿一小段测试。5. 下一步学什么从能用到好用的进阶路线你现在已经能跑通提取数字、分组、替换这几个核心操作了。接下来别急着背所有元字符按这个顺序走更稳阶段学什么练什么第 1 周re.findall、re.sub、re.search三个函数把本文三个例子改参数跑通第 2 周字符集[]、量词* ? {n,m}写一个提取所有邮箱的正则第 3 周分组()、或 、边界^ $ \b第 4 周贪婪与非贪婪、re.S、re.I标志从一段 HTML 里提取所有链接我第一次学正则的时候总想一口气把(?...)、(?...)这些高级语法全记住结果第二天全忘了。后来我改成每遇到一个实际需求就去查对应的写法用完记在笔记里。三个月下来常用的那十几个规则自然就刻在脑子里了。从那以后我每次写正则都强制自己先拿一小段测试文本跑一遍确认匹配结果对了再放到正式代码里。希望这份资源能帮你少走点弯路先把第一个例子跑起来比什么都强。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询