Python正则表达式的使用技巧(python使用正则表达式的案例)
liuian 2025-03-14 18:47 40 浏览
1. 介绍
1.1 介绍
福哥今天要给大家讲讲Python的正则表达式的使用技巧,正则表达式(Regular expressions)就是通过一系列的特殊格式的匹配符号去描述一个字符串的工具。
使用正则表达式可以快速检测字符串的格式,也可以从字符串里面查找出符合特定规则的字符串片断,还可以将字符串按照特定的规则替换或者重组成新的字符串。
2. 正则表达式
2.1 表达式
2.1.1 re.compile
使用re.compile方法可以定义一个pattern,用来使用其他方法调用这个pattern。
url = "https://tongfu.net/home/35.html"
pattern = re.compile(r"tongfu\.net", re.I)
print(re.findall(pattern, url))2.1.2 re.template
re.template方法和re.compile方法类似,可以达到相同的目的。
url = "https://tongfu.net/home/35.html"
pattern = re.template(r"tongfu\.net", re.I)
print(re.findall(pattern, url))2.2 匹配
2.2.1 re.match
re.match可以实现使用pattern去匹配字符串,结果是一个对象,可以有很多功能可以使用。
re.match是从字符串开头进行匹配的,pattern如果不包含字符串开头部分的话,匹配一定会失败!
url = "https://tongfu.net/home/35.html"
match = re.match(r"https\:\/\/([^\/]+)\/home\/(\d+)\.html", url)
print(match.group())
print(match.groups())2.2.2 re.search
re.search和re.match类型,区别在于re.search不是从字符串开头匹配的。
如果我们的pattern本身就是从字符串开头匹配的话建议使用re.match,因为效率它更快!
url = "https://tongfu.net/home/35.html"
match = re.search(r"home\/(\d+)\.html", url)
print(match.group())
print(match.groups())2.2.3 re.findall
re.findall可以直接返回一个tuple数组,而且可以实现多组匹配。
urls = "https://tongfu.net/home/35.html," \
"https://tongfu.net/home/8.html"
matches = re.findall(r"https\:\/\/([^\/]+)\/home\/(\d+)\.html", urls)
print(matches)2.3 替换
2.3.1 re.sub
使用re.sub可以将pattern匹配的字符串片断替换为我们想要的内容,这里面还可以将pattern中的匹配组应用到替换内容里面。
urls = "https://tongfu.net/home/35.html," \
"https://tongfu.net/home/8.html"
matches = re.sub(r"\/home\/(\d+)\.html", r"/homepage/\1.htm", urls)
print(matches)2.3.2 re.subn
re.subn和re.sub在字符串替换功能上面没有区别,re.subn比re.sub多了一个替换次数的统计,这个会在返回值里面体现出来。
urls = "https://tongfu.net/home/35.html," \
"https://tongfu.net/home/8.html"
matches = re.subn(r"\/home\/(\d+)\.html", r"/homepage/\1.htm", urls)
print(matches)2.4 修饰符
修饰符就是参数flags,用来对pattern进行一个补充。
修饰符 | 描述 |
|---|---|
re.I | 忽略大小写敏感,就是不管大小写问题,字母对就算匹配了。 |
re.L | 本地化识别匹配。 |
re.M | 多行匹配,默认正则表达式会在遇到换行符后结束匹配,设置这个之后就会一直匹配到末尾。 |
re.S | 使字符“.”匹配换行符,默认字符“.”是不包括换行符的。 |
re.U | 使用Unicode解析字符串,它会影响“\w”,“\W”,“\b”,“\B”的作用。 |
re.X | 这个福哥还没有研究过,官方说法就是可以让编写pattern更加简单。 |
3. 总结
今天福哥带着童鞋们学习了Python的正则表达式库re的使用技巧,正则表达式在各种语言的编程时候都是非常重要的库,使用正则表达式可以让我们处理字符串变得更加简单、更加优雅~~
https://m.tongfu.net/home/35/blog/513407.html
相关推荐
- 深圳电脑城在哪里(深圳电脑卖场)
-
龙岗:世纪电脑城,平湖电脑城,京科电脑城坪山新区:坪山电脑城龙华:观澜电脑城,大浪电脑城,宏华电脑城,龙华电子城宝安区:赛格电子城,宝安电子城,丰明电脑城,沙井电子城龙岗中心区那边有两个电子城,...
- 电脑上怎么清理c盘垃圾(电脑里怎么清理c盘的东西)
-
C:\ProgramFiles\WindowsApps(隐藏文件夹)。打开“此电脑”,点击“查看”,勾选“隐藏的项目”,即可查看隐藏文件。为保证文件安全,此文件夹需要获取权限才能操作。获取方式...
- 手机哪个杀毒软件最好用
-
杀毒软件我有用过好几种用过之觉得体验感及安全性来说人喜欢推荐腾讯手机管家功能比较全面监控流量、查杀病毒、保护隐私等等界面也比较漂亮重点还要定期扫描同时也要轻易点开别人发链接之类软件有提示危险绝对要点开...
-
- 笔记本电脑怎样截图(苹果笔记本电脑怎样截图)
-
方法/步骤1第一个办法自然是我们最常见最简单的,使用“PrintScreen”键截图了。点击“PrintScreen”键,我们就可以直接截取全部屏幕,找个对话框或者文字区域粘贴就好了。我截的图是这样的2Windows系统都自带有截图工具,我...
-
2026-01-14 22:37 liuian
- vaio笔记本u盘启动(hipaa笔记本u盘启动)
-
可能是u盘启动快捷键没有使用正确。因为笔记本型号不同,所以BIOS会有所不同,并且进入bios的启动快捷键也会不同。而索尼笔记本开机需要按F2键进入bios设置中。 2、在bios中没有正确设置u盘...
- win7补丁更新在哪(win7系统补丁更新到几月)
-
答,方法如下1、点击开始菜单。在开始菜单键上面有三个图标,分别是;用户。设置。电源。点击其中的设置按钮。 2、接着,就打开了Windows设置窗口。点击最后一个“更新和安全”。 3、选择左侧列表中...
- 大白菜启动盘下载(大白菜启动盘官网)
-
要在大白菜U盘上下载系统并创建启动盘,首先需要确保U盘的容量足够大以容纳整个系统镜像文件。然后,您可以从官方网站或可信的下载源获取所需的系统镜像文件,并使用专业的启动盘制作工具,如Rufus或UNet...
- win10笔记本强制关机(windows10笔记本强制关机)
-
笔记本强制关机方法:1、按笔记本的电源键不松手,即可实现强制关机。2、一般涉及强制关机主要有死机、蓝屏、电脑运行程序无响应。强制关机后,笔记本电脑可能会出现非常卡的情况。这主要是因为在强制关机的过程中...
- 硬盘低级格式化软件哪个好(硬盘低级格式化对硬盘有损伤吗)
-
万能低格工具llftool好万能低格工具llftool是一款强大易用的硬盘低级格式化软件,支持硬盘、移动硬盘、内存卡、u盘等等存储设备的低格功能,过程快速方便,性能安全稳定。另外,...
- 苹果笔记本无线网络连接不上
-
1、可能是连接问题,重开手机热点,重启电脑WIFI,重新连接试试; 2、可能是你电脑无线网络适配器被禁用了。建议你检查一下是否开启了“自动获取IP地址和DNS服务器地址”。具体检查路径:控制面板...
- win7 旗舰版和专业版哪个好(win7旗舰版专业版区别)
-
旗舰版比专业版功能要全,但是这多出的功能一般也用不上。至于是否影响电脑运行速度?同样的电脑配置,系统功能多的和功能少运行速度快,肯定是功能少点速度提升,但感觉上没什么区别。和政府机关内一般是和企业版本...
- 系统门窗一线品牌有哪些(中国系统门窗一线品牌有哪些)
-
轩尼斯门窗轩尼斯门窗创立于2004年,总部植根于佛山,生产基地在广东江苏共有4个,分别在凤岗厂区、盐城厂区、官窑厂区和范湖厂区;轩尼斯门窗在创建伊始就自主研发出了首款断桥铝门窗,产品技术专利超100项...
- 笔记本显卡天梯图排行榜(笔记本显卡天梯图最新版)
-
1、华硕ASUSROG-STRIX-RTX3080-O10G-GAMING1440-1935MHz华硕RTX3080被称为猛禽显卡,它将ROGSTRIX的轴流风扇进一步升级,扇叶数量也进行了...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
