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

Python正则表达式入门(匹配手机号邮箱身份证,新手实用)

正则表达式是处理字符串的“神器”,用于匹配、查找、替换符合规则的字符串,比如提取文本中的手机号、验证邮箱格式、清洗数据等。很多新手觉得正则表达式语法晦涩难懂,其实掌握常用的匹配规则,再结合实战案例,就能快速上手。

今天分享Python正则表达式的基础用法,聚焦“手机号、邮箱、身份证”这3个高频场景,搭配可直接运行的代码,新手复制就能用,轻松解决字符串处理问题~

一、核心基础:正则表达式常用符号(新手必记)

先记几个最常用的符号,覆盖80%的场景:

符号含义示例
\d匹配数字(0-9)\d{11} → 匹配11位数字
\w匹配字母/数字/下划线\w+ → 匹配至少1个字母/数字/下划线
[]匹配括号内的任意字符[0-9a-zA-Z] → 匹配数字或字母
^匹配字符串开头^13 → 匹配以13开头的字符串
$匹配字符串结尾com$ → 匹配以com结尾的字符串
{n}匹配n次\d{6} → 匹配6位数字
{n,m}匹配n到m次\d{6,18} → 匹配6-18位数字
+匹配至少1次\d+ → 匹配至少1位数字
*匹配0次或多次\d* → 匹配0位或多位数字

二、Python正则模块:re(核心!)

Python通过re模块操作正则表达式,新手重点掌握4个函数:

  • re.match():从字符串开头匹配(用得少);

  • re.search():查找字符串中第一个匹配的内容;

  • re.findall():查找所有匹配的内容(最常用);

  • re.sub():替换匹配的内容。

三、实战1:匹配手机号(11位,以13/14/15/17/18/19开头)

import re # 手机号正则规则 phone_pattern = r"^1[345789]\d{9}$" # 测试数据 phones = ["13800138000", "12345678901", "1380013800", "138001380001"] for phone in phones: # re.match:从开头匹配,返回匹配对象(成功)/None(失败) result = re.match(phone_pattern, phone) if result: print(f"{phone} 是有效手机号") else: print(f"{phone} 是无效手机号") # 输出: # 13800138000 是有效手机号 # 12345678901 是无效手机号(开头不是13/14等) # 1380013800 是无效手机号(不足11位) # 138001380001 是无效手机号(超过11位)

四、实战2:提取文本中的所有邮箱

import re # 邮箱正则规则 email_pattern = r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+" # 测试文本 text = """ 联系我们:support@test.com,营销邮箱:market@test.cn, 个人邮箱:zhangsan123@163.com,无效邮箱:zhangsan@test """ # re.findall:提取所有匹配的邮箱 emails = re.findall(email_pattern, text) print("提取的邮箱:") for email in emails: print(email) # 输出: # support@test.com # market@test.cn # zhangsan123@163.com

五、实战3:验证身份证号(18位,最后一位可为X)

import re # 身份证正则规则(18位,前17位数字,最后一位数字/X/x) id_card_pattern = r"^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$" # 测试数据 id_cards = ["110101199001011234", "11010119900101123X", "11010119900101123", "1101011990010112345"] for id_card in id_cards: result = re.match(id_card_pattern, id_card) if result: print(f"{id_card} 是有效身份证号") else: print(f"{id_card} 是无效身份证号") # 输出: # 110101199001011234 是有效身份证号 # 11010119900101123X 是有效身份证号 # 11010119900101123 是无效身份证号(不足18位) # 1101011990010112345 是无效身份证号(超过18位)

六、实战4:替换文本中的敏感词

import re # 敏感词正则(匹配“垃圾”“骗子”) sensitive_pattern = r"垃圾|骗子" # 测试文本 text = "这个商家是骗子,卖的都是垃圾产品!" # re.sub:替换匹配的敏感词为* new_text = re.sub(sensitive_pattern, "*", text) print("替换后:", new_text) # 输出:这个商家是*,卖的都是*产品!

七、新手避坑指南

  1. 正则规则加r前缀:避免转义字符(如\d不要写成\d);

  2. 匹配中文:用[\u4e00-\u9fa5](匹配单个中文);

  3. 贪婪匹配:正则默认贪婪(尽可能多匹配),加?变为非贪婪(如\d+?);

  4. 测试规则:先用在线正则工具(如正则表达式测试器)验证规则,再写代码。

最后

正则表达式的核心是“规则匹配”,新手不用死记所有符号,先掌握手机号、邮箱、身份证这3个高频场景的规则,再根据需求查文档扩展。练习时可以尝试提取文本中的手机号、清洗评论中的敏感词,巩固知识点。

http://www.jsqmd.com/news/443302/

相关文章:

  • 男士沐浴露哪个品牌好?2026实测5款高口碑款,控油祛痘 - 品牌测评鉴赏家
  • 2026男士素颜霜排行6家实测!无假白、不闷痘,新手闭眼冲不踩雷 - 品牌测评鉴赏家
  • 2026废气治理新选择,这些设备厂家联系方式别错过,进口树脂/苏伊士滤芯,废气处理设备公司怎么选择 - 品牌推荐师
  • AI写的期刊论文靠谱吗?实测11款AI论文生成工具测评,从开题到盲审一次通关!
  • 2026年深圳离婚房产律所深度测评:基于实战案例与流程管理的五维解析 - 十大品牌推荐
  • Ollama本地部署教程
  • 2026年值得关注的街舞培训机构推荐排行新鲜出炉,街舞培训/少儿街舞考级/少儿街舞/成人街舞,街舞培训教学院所推荐 - 品牌推荐师
  • 美妆博主实测|3款男士沐浴露封神!油痘肌/敏感肌闭眼冲不踩雷✨ - 品牌测评鉴赏家
  • 真的太省时间了!AI论文网站 千笔ai写作 VS 灵感风暴AI,自考必备神器!
  • 男生必看!5款高口碑男士沐浴露实测,控油修护不踩雷 - 品牌测评鉴赏家
  • 2026年3月国内危废间品牌口碑排行大曝光,危废暂存间/防爆危废间/危废间,危废间厂商排行 - 品牌推荐师
  • 兄弟告别油腻!这几款男士去油沐浴露排名推荐 - 品牌测评鉴赏家
  • 男生必看|5款热门男士沐浴露实测对比✅ 避坑不花冤枉钱 - 品牌测评鉴赏家
  • 2026年深圳离婚房产律所权威榜单发布:五大律所专业实力深度排位赛 - 十大品牌推荐
  • 2026年评价高的石笼网品牌推荐:甘肃防洪防汛石笼网行业内知名厂家推荐 - 行业平台推荐
  • 2026年质量好的精密RV减速机厂家推荐:佛山蜗杆减速机/蜗轮蜗杆减速机/佛山蜗轮减速机用户口碑认可参考(高评价) - 行业平台推荐
  • 比肩Claude Opus:阶跃星辰最强模型Step 3.5 Flash发布
  • 最佳的免费Linux杀毒软件有哪些
  • 2026男士沐浴露实测榜单:香氛肤感双优,解锁男神清爽密码 - 品牌测评鉴赏家
  • 2026年江苏地区欧式行车服务商排名,哪家靠谱一目了然 - 工业推荐榜
  • 男士沐浴新选择:解锁你的专属魅力香氛 - 品牌测评鉴赏家
  • 最全剖析!霍尔木兹海峡长期封锁下 十大产业链危机脉络梳理 - Leone
  • 2026年靠谱的碳纤维管喷漆设备厂家推荐:碳纤维管缠绕设备/威海碳纤维管材设备/威海碳纤维管切割设备厂家综合实力参考(2026) - 行业平台推荐
  • 【信息科学与工程学】【产品体系】第二十四篇 产品线工程(PLE)和系统产品线工程的核心模型 2nm数据中心级GPU全技术栈模型 00
  • 2026年评价高的2D视觉检测设备品牌推荐:缺陷视觉检测设备/机器在线视觉检测设备/苏州冲压视觉检测设备热门品牌厂家推荐 - 行业平台推荐
  • 别再乱选!男士温和洗面奶红榜大公开 - 品牌测评鉴赏家
  • 男士洗面奶别瞎买!2026实测高口碑款,油皮/敏肌/干皮闭眼入 - 品牌测评鉴赏家
  • 2026技术实力强的智能语音机器人厂商及跨境电商专属方案解析 - 品牌2026
  • 字节二面:Redis 能做消息队列吗?怎么实现?
  • 2026男士洗面奶品牌排行榜!油皮/干敏肌/学生党精准适配 - 品牌测评鉴赏家