Python学习心得正则表达式及re模块的使用

news2025/3/14 1:46:29

一、正则表达式定义以及正则表达式的构成: 

1.什么式正则表达式:

正则表达式:是一个比较特殊的字符序列,能够帮助用户检查一个字符串是否符合某种特殊的模式。

2.正则表达式的构成:

正则表达式是由元字符限定字符构成的,元字符用来限定匹配的对象,限定符用来限定匹配的个数。

a.元字符:具有特殊意义的专用字符。例如:^和&分别表示开始和结束。

元字符

描述说明

举例

结果

.

匹配任意字符(除\n)

'p\nytho\tn'

p、y、t、h、o、lt、n

\w

匹配字母、数字、下划线

'python\n123'

p、y、t、h、o、n、1、2、3

\W

匹配非字母、数字、下划线

'python\n123'

\n

\s

匹配任意空白字符

'python\t123'

\t

\S

匹配任意非空白字符

'python\t123'

p、y、t、h、o、n、1、2、3

\d

匹配任意十进制数

'python\t123'

123

b. 限定符:用于限定匹配的次数。

限定符

描述说明

举例

结果

?

匹配前面的字符0次或1

colour?r

可以匹配colorcolour

+

匹配前面的字符1次或多次

colour+r

可以匹配colourcolour...r

*

匹配前面的字符0次或多次

colour*r

可以匹配colorcolour...r

{n}

匹配前面的字符n

colour{2}r

可以匹配colour

{n,}

匹配前面的字符最少n

colour{2,}r

可以匹配colourcolour...r

{n,m}

匹配前面的字符最小n次,最多m

colour{2,4}r

可以匹配colourcolour...r  

二、正则表达式的应用:

正则表达式有了,如何对其应用,下面进行解释:

对其进行应用利用了,python中的re模块,通过调用re模块从而实现其操作。

注:python中的re内置模块,可以帮助python实现其正则表达式操作。

1.re模块中的一系列函数:

应用re模块就是对这些函数进行调用

注:调用函数前需要对其进行说明'import re'。

函数

功能描述

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

用于从字符串的开始位置进行匹配,如果起始位置匹配成功,结果为Match对象,否则结果为None

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

用于在整个字符串中搜索第一个匹配的值,如果匹配成功,结果为Match对象,否则结果为None

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

用于在整个字符串搜索所有符合正则表达式的值,结果是一个列表类型。

re.sub(pattern, repl, string, count, flags=0)

用于实现对字符串中指定子串的替换。

re.split(pattern, string, maxsplit, flags=0)

字符串中的split()方法功能相同,都是分隔字符串。

2.函数的调用:

(1) re.match(pattern, string, flags=0)的运用:

import re#导入
pattern='\d\.\d+'#+限定符,\d 0-9数字出现1次或多次
s='I study every day'#待匹配字符串
match=re.match(pattern,s,re.I)
print(match)#None
s2='3.11Python I study every day'
match2=re.match(pattern,s2)
print(match2)#<re.Match object; span=(0, 4), match='3.11'>

print('匹配值的起始位置:',match2.start())
print('匹配值的结束位置:',match2.end())
print('匹配区间的位置元素:',match2.span())
print('待匹配的字符串:',match2.string)
print('匹配的数据:',match2.group())

(2)re.search(pattern, string, flags=0)的运用:

import re#导入
pattern='\d\.\d+'#+限定符,\d 0-9数字出现1次或多次
s='I study Python3.11 every day'#待匹配字符串
match=re.search(pattern,s,re.I)

s2='4.10 Python I study every day'
s3='Python I study every day'
match3=re.search(pattern,s3)
match2=re.search(pattern,s2)
print(match)
print(match2)
print(match3)

print(match.group())
print(match2.group())

re.findall(pattern, string, flags=0)的运用:

import re#导入
pattern='\d\.\d+'#+限定符,\d 0-9数字出现1次或多次
s='I study Python3.11 and Python2.7 every day'#待匹配字符串
s2='4.10 Python I study every day'
s3='Python I study every day'
lst=re.findall(pattern,s)
lst2=re.findall(pattern,s2)
lst3=re.findall(pattern,s3)

print(lst)
print(lst2)
print(lst3)

(3)re.sub(pattern, repl, string, count, flags=0)和re.split(pattern, string, maxsplit, flags=0)的运用:

import re
pattern='黑客|破解|反爬|爬虫'
s='我想学习Python,想破解一些VIP视频,Python可以实现无低反爬吗?'
new_s=re.sub(pattern,'XXX',s)
print(new_s)

s2='http://www.baidu.com/s?wd=wjl&rsv_zpt=1'
pattern2='[?|&]'
lst=re.split(pattern2,s2)
print(lst)

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

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

相关文章

Oracle启动与关闭(基础操作)

11g读取参数文件的顺序 9i之前&#xff0c;只有静态参数文件pfile文件。 9i开始&#xff0c;引入了动态参数文件spfile文件。 Windows&#xff1a; %ORACLE_HOME%\database SPFILEORCL就是动态参数文件 Linux&#xff1a; $ORACLE_HOME/dbs 11g中&#xff0c;启动数据库。…

新版电脑通过wepe安装系统

官方下载链接 WIN10下载 WIN11下载 微PE 启动盘制作 1&#xff1a;选择启动盘的设备 2&#xff1a;选择对应的U盘设备&#xff0c;点击安装就可以&#xff0c;建议大于8g 3&#xff1a;在上方链接下载需要安装的程序包&#xff0c;放入启动盘&#xff0c;按需 更新系统 …

Jmeter断言、关联、录制脚本

Jmeter断言 断言&#xff1a;让程序自动判断预期结果和实际结果是否一致 提示: Jmeter在请求的返回层面有个自动判断机制&#xff08;响应状态码 2xx:成功&#xff0c;4xx/5xx:失败&#xff09;但是请求成功了&#xff0c;并不代表结果一定正确&#xff0c;因此需要检测机制提…

SpringBoot速成(12)文章分类P15-P20

1.新增文章分类 1.Postman登录不上&#xff0c;可以从头registe->login一个新的成员:注意&#xff0c;跳转多个url时&#xff0c;post/get/patch记得修改成controller类中对应方法上写的 2.postman运行成功&#xff1a; 但表中不更新&#xff1a;细节有问题&#xff1a; c是…

RedHat8安装postgresql15和 postgis3.4.4记录及遇到的问题总结

安装包对照版本参考 UsersWikiPostgreSQLPostGIS – PostGIS 如果Red Hat系统上有旧版本的PostgreSQL需要卸载 在较新的Red Hat版本&#xff0c;使用dnf包管理器卸载&#xff1a;sudo dnf remove postgresql-server postgresql 旧版本&#xff0c;使用yum包管理器卸载 sudo y…

深入解析计算机网络请求头:常见类型与安全性影响

目录 1. Host 2. User-Agent 3. Cookie 4. Referer&#xff08;或 Referrer&#xff09; 5. Authorization 6. Content-Type 7. Content-Length 8. Origin 9. X-Forwarded-For (XFF) 10. Upgrade-Insecure-Requests 11. X-Frame-Options 12. Cache-Control 13. Ac…

VisoMaster整合包及汉化

VisoMaster是个图片及视频换脸工具&#xff0c;速度快&#xff0c;性能十分强大。 VisoMaster安装有2种方式&#xff0c;根据官网指引安装也十分简单&#xff0c;在此就不重复&#xff0c;只说说安装过程中要注意的事项&#xff1a; 1、自动安装&#xff1a;需要在网络十分畅…

从安装软件到flask框架搭建可视化大屏(二)——创建一个flask页面,搭建可视化大屏,零基础也可以学会

附录&#xff1a;所有文件的完整代码 models.py # models/models.py from flask_sqlalchemy import SQLAlchemydb SQLAlchemy()class User(db.Model):__tablename__ user # 显式指定表名为 userid db.Column(db.Integer, primary_keyTrue)username db.Column(db.String(…

[JVM篇]垃圾回收器

垃圾回收器 Serial Seral Old PartNew CMS(Concurrent Mark Sweep) Parallel Scavenge Parallel Old G1 ZGC

DeepSeek专题:DeepSeek-V1核心知识点速览

AIGCmagic社区知识星球是国内首个以AIGC全栈技术与商业变现为主线的学习交流平台&#xff0c;涉及AI绘画、AI视频、大模型、AI多模态、数字人以及全行业AIGC赋能等100应用方向。星球内部包含海量学习资源、专业问答、前沿资讯、内推招聘、AI课程、AIGC模型、AIGC数据集和源码等…

SpringBoot+shardingsphere实现按月分表功能

SpringBootshardingsphere实现按月分表功能 文章目录 前言 ShardingSphere 是一套开源的分布式数据库中间件解决方案&#xff0c;旨在简化数据库分片、读写分离、分布式事务等复杂场景的管理。它由 Apache 软件基金会支持&#xff0c;广泛应用于需要处理大规模数据的系统中 一…

教程 | 从零部署到业务融合:DeepSeek R1 私有化部署实战指南

文章目录 1. 什么是 DeepSeek R1&#xff1f;a. 主要介绍a. 版本区别 2. 部署资源要求a. 硬件资源要求 3. 本地安装DeepSeek-R1a. 为什么选择本地部署&#xff1f;b. 部署工具对比c. 演示环境配置d. Ollama安装流程 4. 可视化工具a. 工具对比b. Open-WebUI部署 5. AI API应用a.…

分布式 NewSQL 数据库(TiDB)

TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议&#xff0c;具有数据强一致的高可用特性&#xff0c;是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。 TiDB是 PingCAP公司自主设计、研发的开源分布式关系型数据…

C语言-章节 1:变量与数据类型 ——「未初始化的诅咒」

在那神秘且广袤无垠的「比特大陆」上&#xff0c;阳光奋力地穿过「内存森林」中错综复杂的代码枝叶缝隙&#xff0c;洒下一片片斑驳陆离、如梦似幻的光影。林间的空气里&#xff0c;弥漫着一股浓郁的十六进制锈蚀味&#xff0c;仿佛在诉说着这片森林中隐藏的古老秘密。 一位零基…

HTML的入门

一、HTML HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是一种用来告知浏览器如何组织页面的标记语言。 超文本&#xff1a;就是超越了文本&#xff1b;HTML不仅仅可以用来显示文本(字符串、数字之类)&#xff0c;还可以显示视频、音频等…

闭源大语言模型的怎么增强:提示工程 检索增强生成 智能体

闭源大语言模型的怎么增强 提示工程 检索增强生成 智能体 核心原理 提示工程:通过设计和优化提示词,引导大语言模型进行上下文学习和分解式思考,激发模型自身的思维和推理能力,使模型更好地理解和生成文本,增强其泛用性和解决问题的能力。检索增强生成:结合检索的准确…

【图像加密解密】空间混沌序列的图像加密解密算法复现(含相关性检验)【Matlab完整源码 2期】

1、说明 本文给出详细完整代码、完整的实验报告和PPT。 环境&#xff1a;MATLAB2019a 复现文献&#xff1a;[1]孙福艳,吕宗旺.Digital image encryption with chaotic map lattices[J].Chinese Physics B,2011,20(04):136-142. 2、部分报告内容 3 部分源码与运行步骤 3.1 部…

QxOrm生成json

下载Qxorm-1.5版本 使用vs打开项目&#xff0c;直接生成即可&#xff1a; lib目录中会生成dll和lib文件 新建Qt项目使用Qxorm: 将QxOrm中上面三个目录拷贝到新建的Qt项目中 pro文件添加使用QxOrm第三方库 INCLUDEPATH $$PWD/include/ LIBS -L"$$PWD/lib" LIBS…

ASP.NET Core Web应用(.NET9.0)读取数据库表记录并显示到页面

1.创建ASP.NET Core Web应用 选择.NET9.0框架 安装SqlClient依赖包 2.实现数据库记录读取: 引用数据库操作类命名空间 创建查询记录结构类 查询数据并返回数据集合 3.前端遍历数据并动态生成表格显示 生成结果:

uniapp商城之首页模块

文章目录 前言一、自定义导航栏1.静态结构2.修改页面配置3.组件安全区适配二、通用轮播组件1. 静态结构组件2.自动导入全局组件3.首页轮播图数据获取三、首页分类1.静态结构2.首页获取分类数据并渲染四、热门推荐1.静态结构2.首页获取推荐数据并渲染3.首页跳转详细推荐页五、猜…