python正则表达式之re.match()与re.search()的用法及区别
作者:程序遇上智能星空 发布时间:2022-05-14 13:21:46
标签:python,re.match(),re.search()
1、re.match()的用法
re.match()方法是从起始位置开始匹配一个模式,匹配成功返回一个对象,未匹配成功返回None。
语法:
re.match(pattern, string, flags=0)
参数说明:
pattern:匹配的正则表达式;
string:要匹配的字符串;
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;
示例如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
if __name__ == '__main__':
# 匹配模式
test_pattern = r"\d{2}年"
# 待匹配的字符串
test = "18年2019年2020年"
print(re.match(test_pattern, test).group())
输出:
18年
Process finished with exit code 0
若将匹配模式改成:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
if __name__ == '__main__':
# 匹配模式
test_pattern = r"\d{4}年"
# 待匹配的字符串
test = "18年2019年2020年"
print(re.match(test_pattern, test))
则返回结果为:
None
Process finished with exit code 0
这是因为re.match()仅从头开始匹配,由于起始位置处未找到符合匹配模式的内容,返回None。
2、re.search()的用法
re.search()方法是扫描整个字符串内进行模式匹配,只要找到第一个匹配就返回,如果字符串没有匹配,则返回None。
语法:
re.search(pattern, string, flags=0)
参数说明:
pattern:匹配的正则表达式;
string:要匹配的字符串;
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;
示例如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
if __name__ == '__main__':
# 匹配模式
test_pattern = r"\d{4}年"
# 待匹配的字符串
test = "18年2019年2020年"
print(re.search(test_pattern, test).group())
输出:
2019年
Process finished with exit code 0
这是因为re.search()扫描整个字符串,找到符合匹配模式的第一个匹配就返回了。
3、re.match()与re.search()的区别
re.match()方法要求必须从字符串的开头进行匹配,如果字符串开头不符合模式规则,整个匹配就失败了,函数返回None;
re.search()并不要求必须从字符串的开头进行匹配,而是扫描整个字符串,直到找到第一个匹配。
来源:https://blog.csdn.net/kevinjin2011/article/details/125598411


猜你喜欢
- 1. 认识数据库1.1 数据库和数据结构的关系数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合,是一个抽象的学科我们熟知的数据结
- python链表的反转反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输
- 本文实例讲述了获取django框架orm query执行的sql语句实现方法。分享给大家供大家参考,具体如下:利用Django orM 可以
- 本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下1.主要内容python种的.py文件如图所示第一个
- 一、简单配置,获取单个网页上的内容。(1)创建scrapy项目scrapy startproject getblog(2)编辑
- Python信息抽取之乱码解决办法就事论事,直说自己遇到的情况,和我不一样的路过吧,一样的就看看吧信息抓取,用python,beautifu
- 在为一个客户排除死锁问题时我遇到了一个有趣的包括InnoDB间隙锁的情形。对于一个WHERE子句不匹配任何行的非插入的写操作中,
- 最近遇到这个函数,但查的中文博客里的解释貌似不是很到位,这里翻译一下stackoverflow上的回答并加上自己的理解。在pytorch中,
- 数据格式:(polygon.txt) 里面含有2个多边形,一行是一个点 0.085, 0.834, 0.024, 0.744, 0, 0.6
- 本文实例讲述了python简单分割文件的方法。分享给大家供大家参考。具体如下:有的网站在上传文件时对文件大小有限制,因此可以将大文件分割成多
- 主库执行CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci;us
- 好了,下面我们看看如何在服务器上生成.m3u文件并下传到客户端的:<%dim choose,path,mydb,myset,
- 代码如下:declare @cmd nvarchar(4000) set @cmd = N'exec [?].sys.sp_chan
- 前言最近又在重新学习编译原理了,其实两年前也复习过,当初是为了能实现通过 MySQL 的 DDL 生
- mysql支持很多字段类型,包括数值类型、日期/时间类型和字符串(字符)类型;在使用时需要考虑到存储空间,存储效率;几种列类型描述使用了下述
- 在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别?上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助
- 一.做数据二.搭建神经网络三.训练四.对比测试结果注意:测试过程中,一定要注意模式切换Pytorch的学习——过拟合过拟合过拟合是当数据量较
- 1. 优化你的MySQL查询缓存在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有
- /*不同服务器数据库之间的数据操作*/ --创建链接服务器 exec sp_addlinkedserver 'ITSV ',
- 看代码吧~func remove(slice []interface{}, elem interface{}) []interface{}{