网站首页 > 技术文章 正文
在使用python正则进行字符串匹配查询时,最常用的三个函数是re.match、re.search和re.findall,在这里我就用一个例子带大家了解这三者的使用区别,话不多说我们直接上代码!
import re
txt="test,a:123,b:1234,c:12345,hello!"
re.match
#从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None
m1=re.match(r'(\d+),', txt)
print(m1)
输出:None
原因是 txt 变量是以test开头,所以并没有从首字母开始完全匹配
re.search
#若string中包含pattern子串,则返回匹配对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个。
m2=re.search(r'(\d+),', txt)
print(m2)
输出:<re.Match object; span=(7, 11), match='123,'>
原因是search是只要在字符串中知道匹配对象,就会返回第一个匹配的对象。如果想要看具体的匹配对象值,使用print(m2.group())即可。
re.findall
#findall 通过group() 来进行多个值得匹配,返回string中所有与pattern相匹配的全部字串,返回形式为list。
m3 = re.findall(r'(\d+),', txt)
print(m3)
输出:['123', '1234', '12345']
原因是findall会返回多个符合匹配表达式的对象值,返回形式是list
#如果需要匹配多个分组表达式,可以使用例如:(\w+) 和(\d+)两个group 表达式进行匹配
m4 = re.findall(r'(\w+):(\d+),', txt)
print(m4)
输出:[('a', '123'), ('b', '1234'), ('c', '12345')]
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!
猜你喜欢
- 2024-12-27 史上最全正则详解 正则的用法
- 2024-12-27 慎用正则表达式 使用正则表达式
- 2024-12-27 Java性能调优--代码篇:优化正则表达式的匹配效率
- 2024-12-27 详细介绍一下Python爬虫中的正则表达式匹配规则?
- 2024-12-27 Word中实例演示:高级查找与高级替换等....
- 2024-12-27 再杂也无惧 在Excel高效提取数字 excel如何提取出数字
- 2024-12-27 Linux下find与exec的联手干大事 linux find -newer
- 2024-12-27 Java中如何使用正则技术提取html中的任意内容
- 2024-12-27 一看就懂 | 30分钟入门正则表达式,看这一篇就够了(值得收藏)
- 2024-12-27 VBA如何找出工作表数据中的数字,简单到不用思考
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)