python基础——正则表达式 - 指南

news/2025/10/2 18:12:42/文章来源:https://www.cnblogs.com/wzzkaifa/p/19123846

前言:
这篇文章主要想讲解一下python中的正则表达式:
1,什么是正则表达式
2,re模块三匹配
3,元字符匹配
4,具体示例

个人简介:努力学习ing
个人专栏:C语言入门基础以及python入门基础
CSDN主页 愚润求学
每日鸡汤:天生我材必有用,千金散尽还复来


文章目录

  • 一,什么是正则表达式
  • 二,re模块三匹配
    • 1,match()
    • 2,search()
    • 3,findall()
    • 4,总结
  • 三,元字符匹配
  • 1,单字符匹配
  • 2,数量匹配
  • 3,边界匹配
  • 四,具体示例
    • 例一
    • 例二
    • 例三

一,什么是正则表达式

正则表达式(Regular Expression)是一种用于处理字符串的强大工具,它可以用来检查字符串是否符合某种模式、提取字符串中的特定部分或者替换字符串中的某些内容。
比如在某些场景,我们在输入邮箱的时候,如果我们的输入不符合邮箱地址的规则,则会被提示错误输入。

二,re模块三匹配

下面是三种常用来匹配的函数

1,match()

match()函数用于从字符串的开头开始匹配正则表达式。(如果第一个字符就不匹配则直接返回None
如果匹配成功,返回一个匹配对象(包含匹配的信息);如果匹配失败,返回None

函数原型:

re.match(pattern, string, flags=0)

pattern: 匹配的正则表达式(匹配规则)
string: 要匹配的字符串
flags: 可选参数,用于控制匹配方式,如是否忽略大小写、是否多行匹配等。

示例:

import re
a = "hello world! hello world."
print(re.match('hello', a))

输出:
在这里插入图片描述
(这个span(0,5)是不包括5下标的)

2,search()

search()函数用于在字符串中搜索与正则表达式匹配的子字符串。如果找到匹配项,返回一个匹配对象;如果找不到匹配项,返回None

函数原型:

re.search(pattern, string, flags=0)

(参数与match()相同。)

示例:

import re
a = "hello world! hello world."
print(re.search('llo', a))

输出:
在这里插入图片描述

3,findall()

findall()函数用于在字符串中查找所有与正则表达式匹配的子字符串,并返回一个包含所有匹配项的列表。
函数原型:

re.findall(pattern, string, flags=0)

(参数与match()search()相同。)

示例:

import re
a = "hello world! hello world."
print(re.findall('llo', a))

输出:
在这里插入图片描述

4,总结

match(): 从字符串的开头开始匹配,如果开头不匹配则返回None。匹配成功则返回第一个匹配项(包含信息),匹配失败则返回None
search(): 在字符串中搜索与正则表达式匹配的子字符串,返回第一个匹配项(包含信息),失败返回None
findall(): 在字符串中查找所有与正则表达式匹配的子字符串,并返回一个包含所有匹配项的列表,找不到则返回一个空列表。

三,元字符匹配

正则表达式的核心是用于构建模式的元字符。元字符是一些具有特殊含义的字符,可以用来匹配某一类字符。使用元字符构建一个模式,然后使用这个模式来处理字符串。

为了创建一个正则表达式,你通常需要在字符串前面添加一个r前缀。这个前缀告诉Python解释器这是一个原始字符串(raw string)

1,单字符匹配

在这里插入图片描述

2,数量匹配

在这里插入图片描述

如:\d*:匹配0个或者无数个数字
[0-9]+:匹配1个或者无数个0-9之间的数字)
[^0]:匹配除了0以外的所有字符
[^a-zA-Z]:匹配除了字母a-zA-Z以外的所有字符。(a-zA-Z之间最好不要加,
注意:{m,n}之间不要加逗号:a{1,2},b{1,3}【错误的】

3,边界匹配

在这里插入图片描述

^[0-9]+$:从头开始匹配到结尾,中间出现1个或无数个0-9之间的数字
():把()内要匹配的当一个整体来匹配
| :意思就是或,如:com|136|qq就是指这里匹配com或者136或者qq

四,具体示例

例一

匹配账号,只能由字母和数字组成,长度限制6到10位:

principle1 = r'^[0-9a-zA-Z]{6,10}$'

示例:

import re
principle1 = r'^[0-9a-zA-Z]{6,10}$'
text1 = "2005abc"
text2 = "200504@abc"
match_obj1, match_obj2 = re.match(principle1, text1), re.match(principle1, text2)
print(f"text1匹配的结果是:{match_obj1}\ntext2匹配的结果是{match_obj2}")

输出结果:
在这里插入图片描述

例二

匹配QQ号,要求纯数字,长度5-11,第一位不为0:

principle2 = r'^[1-9][0-9]{4,10}$'

例三

匹配邮箱地址
要求:
1,邮箱地址的格式:用户名+@+域名
2,用户名是由数字、字母、_-组成
3,只允许qq、163、gmail这三种邮箱地址

提示:
126.com是域名,.edu.com也是域名……

答案:

principle3 = r'^[\w-]+(\.[\w-]+)*@(qq|163|gmail)(\.[\w-]+)+$'

[\w-]+ 表示出现a-zA-Z0-9_- 字符最少1个,最多不限
(\.[\w-]+)*,表示出现组合 .a-zA-Z0-9_-的组合最少0次,最多不限
用于匹配如:abc.def@……
@表示匹配@符号
(qq|163|gmail)表示只匹配这3个邮箱提供商
(\.[\w-]+)+表示组合 .a-zA-Z0-9_-的组合最少1次,最多不限
如:3369134@abc.def.com


我的分享也就到此结束啦
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
公主,王子:点赞→收藏⭐→关注
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习15:自监督式学习(Self-Supervised Learning)① - 实践

机器学习15:自监督式学习(Self-Supervised Learning)① - 实践2025-10-02 18:11 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !impo…

长沙旅游网站开发旅游网站的建设背景

ChatGPT4和Gemini Ultra被Claude 3 AI模型超越了? 3月4日周一,人工智能公司Anthropic推出了Claude 3系列AI模型和新型聊天机器人,其中包括Opus、Sonnet和Haiku三种模型,该公司声称,这是迄今为止它们开发的最快速、最强…

2025担保合同律师事务所推荐,专业团队高效解决法律难题!

2025担保合同律师事务所推荐,专业团队高效解决法律难题!在当今复杂的经济环境中,担保合同作为金融交易和商业合作中的重要法律工具,其纠纷和风险也日益增多。根据行业数据显示,近年来担保合同相关案件的年增长率保…

「补充篇」在Cloudflare上设置并更新SRV记录

「补充篇」在Cloudflare上设置并更新SRV记录索引 │ ├─关于本教程 ├─创建SRV记录 ├─获取DNS更新令牌 ├─获取区域ID ├─获取DNS记录ID ├─更新SRV记录 └─结尾关于本教程 在之前的教程中我们已经介绍了使用…

10.1 CSP模拟26 改题记录

HZOJ 写在前面 hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh T1几分钟出思路然后在写假的道路上越改越远,T2来不及了乱写,T3猜不到结论,只有T4是合理得分、、、 A. median 题意是给定5个长为…

Spring 核心 - AOP 面向切面编程入门, 通俗易懂

Spring 核心 - AOP 面向切面编程入门, 通俗易懂撰写本文目的只有一个,让你畅快阅读 AOP 知识,并搞定以下几个问题。 AOP 面向切面编程到底是什撰写本文目的只有一个,让你畅快阅读 AOP 知识,并搞定以下几个问题。AO…

2025年筒袋磁力泵实力厂家推荐榜:高效耐用与创新技术深度解

2025年筒袋磁力泵实力厂家推荐榜:高效耐用与创新技术深度解在化工、制药、石油等工业领域,筒袋磁力泵作为一种高效、无泄漏的流体输送设备,正日益成为关键工艺环节的核心装备。其采用磁力耦合驱动技术,彻底解决了传…

2025电源适配器权威推荐榜:高效稳定、安全耐用的优质品牌之

2025电源适配器权威推荐榜:高效稳定、安全耐用的优质品牌之选在当今数字化的时代,各种电子设备充斥着我们的生活和工作,从智能手机、平板电脑到笔记本电脑、智能穿戴设备等,这些设备都离不开电源适配器来提供稳定的…

「LUCKY STUN穿透」IPv4和IPv6分离重定向

「LUCKY STUN穿透」IPv4和IPv6分离重定向关于本教程 在之前的教程中我们已经实现了通过cloudflare的页面规则 以及重定向规则实现实现stun穿透端口的“固定” 使用页面规则:「LUCKY STUN穿透」使用Cloudflare的页面规…

2025航空插头权威推荐榜:M8/m12/公母对接/5芯/五芯/三芯/4芯/3芯/12芯航空插头优质性能与可靠品质的源头厂家之选

行业背景航空插头,作为电子设备中电流、信号连接的关键部件,广泛应用于航空航天、国防、工业自动化、交通运输等众多领域。随着科技的飞速发展,各行业对电子设备的性能和可靠性要求越来越高,这也对航空插头的质量、…

2025经侦律师优质品牌推荐:上海浦信律所专业护航!

2025经侦律师优质品牌推荐:上海浦信律所专业护航!在当今复杂多变的商业环境中,经济犯罪的形式日益多样化和隐蔽化,经侦律师的重要性愈发凸显。他们不仅要具备扎实的法律知识,还要应对各种技术挑战,为客户提供专业…

建筑人才网官方网站评职称wordpress目录结构

php的错误处理是比较复杂的, 本文讲解php中所有错误相关的重要知识点做一次梳理, 便于理解php的错误机制. 基础知识 在此之前, 先熟悉一下php error的基础知识 预定义常量运行时配置异常错误处理函数预定义常量 定义了所有php的错误类型常量, 每一个常量都是一个整型数值, 它的…

制作营销网站公司竞价推广培训

在英语学习中,我们经常遇到一些句子包含两个成分,如“人物”或“宾语补充说明”。这些句子可能是双宾语结构,也可能是宾语补足语结构。虽然两者都出现在动词后,但它们的功能和意义完全不同,本篇文章将会介绍一下小技巧…

实用指南:[Windows] 随手剪-视频合并工具 v0.12多种格式多段视频50多种转场效果

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

欧易-(OKX)交易所注册及KYC认证全流程指南

作为全球领先的加密货币交易平台,欧易(OKX)为用户提供安全便捷的数字资产交易服务。本文将详细介绍OKX的注册流程和KYC认证步骤,帮助您快速完成账户开通。 一、OKX注册流程下载安装OKX APP 您可以通过以下方式获取…

Window配置WSL(Ubuntu)环境

WSL是用于Windows系统之上的Linux子系统。可以在Windows系统中获得Linux系统环境,并完全直连计算机硬件,无需通过虚拟机虚拟硬件。WSL是什么 WSL(Windows Subsystem for Linux)是Win10系统推出的全新功能,让我们可…

最流行的网站设计风格洛阳青峰网络让人去培训

组件库上都有详细的介绍,有自带的一些属性!

备案核验单 网站类型wordpress无法上传文件

一、创建Maven项目二、设置SVN信息三、设置构建触发器四、设置Maven命令五、设置构建后发邮件信息(参考文章一)六、设置构建后拷贝文件到远程机器并执行命令来自为知笔记(Wiz)

使用SVCB/HTTPS记录隐藏和固定Web服务端口

使用SVCB/HTTPS记录隐藏和固定Web服务端口背景 在之前的教程中我们实现了使用 重定向 来 “固定” stun穿透后web服务的端口 其主要的效果是 在访问穿透后的web服务时免除输入端口 这个方法不仅适用于stun穿透 也适合运…

深圳市网站开发茂名手机网站制作

/* * 关于equals()和: 对于String简单来说就是比较两字符串的Unicode序列是否相当,如果相等返回true; * 而是比较两字符串的地址是否相同,也就是是否是同一个字符串的引用。 * * 为了高效的修改字符串Java引入了StringBuffer。 */public class test { p…