Python入门基础篇(五)字符串的正则表达式re模块,全面解析!!!

文章目录

  • 前言
  • 一.匹配字符串的方法
    • 1.使用match()方法进行匹配
    • 2.使用search()方法进行匹配
    • 3.使用findall方法进行匹配
  • 二.替换字符串
  • 三.使用正则表达式分割字符串


前言

Python中提供了re模块用于正则表达式的操作,在实现时可以用re模块提供的多种方法对字符串进行处理,re模块在使用时,需要先应用import语句导入,即

import re

不知道其他人对于开始学习正则表达式是什么感觉,反正我是迷糊了很久。下面我们就来仔细讲讲re模块提供的那些方法吧


一.匹配字符串的方法

匹配字符串可以使用re模块提供的match()、search()和findall()等方法

1.使用match()方法进行匹配

match()方法用于从字符串的开始处进行匹配,如果在起始位置匹配成功则返回Match对象,否则返回None,语法格式如下:

re.match(pattern,string,[flags])

pattern:表示模式字符串,由要匹配的正则表达式转换而来
string:表示要匹配的字符串
flags:可选参数,表示标志位,用于控制匹配方式

例如,匹配字符串是否以“hg”开头,不区分大小写:
实现代码:
在这里插入图片描述
运行结果:
在这里插入图片描述

解释一下运行结果吧,从上面的结果来看,字符串string是以“hg_”开头(不区分大小写),所以返回一个Match对象,而字符串str不是以“hg_”开头,当用match()方法从字符串起始位置开始匹配时,遇见不符合条件的字母便不会再匹配了,所以返回“None”
Match对象中包含了匹配值的位置(使用start()方法获取)和匹配数据(使用end()方法获取),通过span()方法可以返回匹配位置的元组,通过string属性可以获取要匹配的字符串。

例:
在这里插入图片描述
运行结果:
在这里插入图片描述

2.使用search()方法进行匹配

search()方法用于在整个字符串中搜索第一个匹配的值,如果匹配成功,则返回Match对象,否则返回 None
语法格式如下:

re.search(pattern,string,[flags])

例如,搜索一个以“hg”开头的字符串,不分大小写
实现代码:
在这里插入图片描述
运行结果:
在这里插入图片描述
从运行结果可以看出来search()方法搜索字符串时,并不一定只能搜索字符串的起始位置,其他位置也可以进行搜索

3.使用findall方法进行匹配

findall()方法用于在整个字符串中搜索所有符合正则表达式的字符串,并以列表的形式返回,如果匹配成功,则返回含有匹配结构的列表,否则返回空列表
语法格式如下:

re.findall(pattern,string,[flags])

例如,搜索一个以“hg”开头的字符串,不分大小写
实现代码:
在这里插入图片描述
运行结果:
在这里插入图片描述

二.替换字符串

可以用sub()方法用于实现字符串的替换,语法格式如下:

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

pattern:表示模式字符串,由要匹配的正则表达式转换而来
repl:表示替换的字符串
string:表示要匹配的字符串
count:可选参数,表示模式匹配后替换的最大次数,默认值为0,表示替换所有的匹配
flags:可选参数,表示标志位,用于控制匹配方式

例如,隐藏个人信息:
实现代码:
在这里插入图片描述
运行结果:
在这里插入图片描述

三.使用正则表达式分割字符串

split()方法用于实现根据正则表达式分割字符串并以列表的形式返回,语法格式如下:

re.split(pattern,string,[maxsplit],[flags])

maxsplit:可选参数,表示最大拆分次数

例如,从给定的URL地址中提取出请求地址和各个参数
实现代码:
在这里插入图片描述
运行结果:
在这里插入图片描述


希望这些对大家有所帮助,自我感觉字符串的正则表达式对于初学者还是挺难的,不过好好加油吧,越是艰难越向前つ﹏⊂






加油加油

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

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

相关文章

Vue 动态数据滚动

使用Vue动态滚动(上下滚动)显示将要展示的讯息。 代码分析: 1.设置固定样式的框架内容 2.设置红色字体内容是动态变化的 3.滚动效果为向上滚动 效果演示: 此效果图的数据是不停滚动变化的 第二张效果图 代码演示&#xff1a…

Python入门进阶篇(六)字典的介绍

请仔细阅读哦!!! 文章目录前言一、Python字典的创建与删除1.字典的创建2.字典的删除二、Python字典的访问1.通过“键值对”访问字典2.遍历字典三、Python字典的添加、修改和删除元素1.字典元素的添加2.修改字典元素3.删除字典元素前言 前面写…

【OpenCV 例程200篇】84. 由低通滤波器得到高通滤波器

【OpenCV 例程200篇】84. 由低通滤波器得到高通滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 4. 频率域高通滤波器 图像边缘化其它灰度的急剧变化与高频分量有关,因此可以…

Vue 数字时钟

用Vue写了一个简单的时间钟。 此时钟内容包括年月日及星期和时分秒。 功能分析&#xff1a; 1.年份&#xff0c;日期&#xff0c;时间的显示 2.动态的变化 3.获取本地时间方法 效果图演示 代码演示 注意&#xff1a;引入vue.min.js架包 <script src"js/vue.min.js…

【OpenCV 例程200篇】85. 频率域高通滤波器的应用

【OpenCV 例程200篇】85. 频率域高通滤波器的应用 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 4. 频率域高通滤波器 图像边缘化其它灰度的急剧变化与高频分量有关&#xff0c;因此可以在频…

【OpenCV 例程200篇】86. 频率域滤波应用:指纹图像处理

【OpenCV 例程200篇】86. 频率域滤波应用&#xff1a;指纹图像处理 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 4. 频率域高通滤波器 图像边缘化其它灰度的急剧变化与高频分量有关&#xf…

商品销售管理系统

用JSP servlet和jquery以及SQLServer数据库实现商品销售管理系统。 功能详解&#xff1a; 1.查询商品 2.添加商品 3.删除商品 4.添加销售记录 5.查看销售记录 效果演示&#xff1a; 进入界面 商品显示页面 删除提示 销售记录查询 商品销售系统需要SQLServer数据库和程序…

【OpenCV 例程200篇】87. 频率域钝化掩蔽

【OpenCV 例程200篇】87. 频率域钝化掩蔽 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 4.2 频率域钝化掩蔽 简单地&#xff0c;从原始图像中减去一幅平滑处理的钝化图像&#xff0c;也可以实…

拼图验证码

H5的Canvas实现一个拼图验证码。 功能分析&#xff1a; 1.验证码图片的生成 2.滑块图片的显示 3.底部滑块的横向移动 4.滑块上的文字显示 效果演示&#xff1a; 初始状态 滑动成功之后 有没有一种心动的感觉呢&#xff1f;&#xff1f;&#xff1f; 代码演示 注意&#x…

【OpenCV 例程200篇】88. 频率域拉普拉斯高通滤波

【OpenCV 例程200篇】88. 频率域拉普拉斯高通滤波 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 4.3 频率域拉普拉斯高通滤波 拉普拉斯算子&#xff08;Laplace&#xff09;是导数算子&#…

顶部导航栏

HTML和CSS实现顶部导航栏&#xff0c;二级菜单的实现。 原理分析&#xff1a; 1.使用ul(无需列表)嵌套ul(无序列表) 2.鼠标放上改变背景颜色 3.二级菜单的显示 效果演示&#xff1a; 初始样式 鼠标放上 代码演示 <!DOCTYPE html> <html><head><meta …

VSCode配置Python的教程

本文基于Windows系统 超详细VSCode安装教程&#xff08;Windows&#xff09; 博主的VSCode专栏&#xff1a;分享使用VSCode的基本操作与各种技巧 刚刚开始学习Python时&#xff0c;按照老师提供的傻瓜式操作配好Python后&#xff0c;发现它自带了一个ide&#xff1a;IDLE&…

【OpenCV 例程200篇】89. 带阻滤波器的传递函数

【OpenCV 例程200篇】89. 带阻滤波器的传递函数 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 5.1 带阻与带通 空间域和频率域线性滤波器可以分为四类&#xff1a;低通滤波器、高通滤波器、带…

用Python海归作图--turtle,画椭圆

想必大家都想过用Python中的turtle画出椭圆吧&#xff0c;自己思考了许久&#xff0c;终于琢磨着画出了椭圆&#xff0c;但是我不知道这个方法是不是最简单的&#xff0c;是不是正确的&#xff0c;如果有错误请指正&#xff0c;如果觉得好用就尽管拿去用&#xff0c;哈哈哈 代码…

【OpenCV 例程200篇】90. 频率域陷波滤波器

【OpenCV 例程200篇】90. 频率域陷波滤波器 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 5.2 陷波滤波器 &#xff08;Notch Filter&#xff09; 陷波滤波器阻止或通过预定的频率矩形邻域中…

简单导航栏

实现一个简单的导航栏。 使用HTML和CSS实现简单的导航栏效果&#xff0c;鼠标放上改变背景杨色。 效果演示 代码演示 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style>ul{width…

轻松学会python的turtle模块,画一箭穿心、小人儿发射爱心、520表白完整代码,海龟作图小创意

本文导航&#xff1a;若您是直接想要代码&#xff0c;那么请您移步代码区&#xff0c;复制粘贴即可;若您是想了解turtle模块更多知识的话&#xff0c;请您移步turtle模块知识区;若您想看完本文呢&#xff0c;那我定是感激涕零啦(✪ω✪) 您可以选择选择如下区域或不作选择浏览本…

【OpenCV 例程200篇】91. 高斯噪声、瑞利噪声、爱尔兰噪声

【OpenCV 例程200篇】 系列&#xff0c;持续更新中… 【OpenCV 例程200篇 总目录-202205更新】 【OpenCV 例程200篇】91. 高斯噪声、瑞利噪声、爱尔兰噪声 2. 噪声模型 数字图像中的噪声源主要来自图像获取和传输过程。在获取图像时&#xff0c;光照水平和传感器温度影响图像中…

H5 炫酷导航

使用H5和CSS制作非常炫酷的旋转标题栏。 原理分析 1.使用ul(无序列表) 2.圆形边框样式 3.透明度的设置 4.边框阴影的添加 5.li去掉前面的圆点 效果演示 初始样式 旋转动画 旋转完毕 代码演示 1 CSS样式 <style>* {margin: 0;padding: 0;}body {background: url(…

超详细VSCode安装教程(Windows)

博主的VSCode专栏&#xff1a; 分享使用VS Code的基本操作与各种技巧 下载 官网下载页面&#xff1a;https://code.visualstudio.com/Download 请根据电脑的系统与所需版本点击下载链接&#xff08;一般情况下点击Windows按钮即可&#xff09; 安装 本文成于2020年4月21日&…