python re.match函数的具体使用
作者:胡小牧 发布时间:2023-07-31 13:16:28
1 re.match 说明
re.match() 从开始位置开始往后查找,返回第一个符合规则的对象,如果开始位置不符合匹配队形则返回None
从源码里面看下match 里面的内容
里面有3个参数 pattern ,string ,flags
pattern : 是匹配的规则内容
string : 要匹配的字符串
flag : 标志位(这个是可选的,可写,可不写),用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等
下面写一个demo
str_content = "Python is a good language" # 要匹配的内容, 对应match 里面的string
str_pattern = "Python" # pattern 匹配的规则
re_content = re.match("Python", str_content)
print(re_content)
打印的结果如下
可以看到匹配的的下标是(0,6) 匹配的内容是Python
2 span 的使用
如果想获取匹配的下标,可以使用span ,
match span 的作用就是返回匹配到内容的下标
使用方式如下
import re # 导入re 模块
str_content = "Python is a good language" # 要匹配的内容, 对应match 里面的string
str_pattern = "Python" # pattern 匹配的规则
re_content = re.match("Python", str_content).span()
print(re_content)
打印结果如下
3 group 的使用
如果想获取匹配到结果的内容可以使用group ,注意使用group的时候就不要在使用span 了
import re # 导入re 模块
str_content = "Python is a good language" # 要匹配的内容, 对应match 里面的string
str_pattern = "Python" # pattern 匹配的规则
re_content = re.match("Python", str_content)
print(re_content.group())
打印结果如下
4 匹配不到内容的情况
如下面的返回结果为None
import re # 导入re 模块
str_content = "Python is a good language" # 要匹配的内容, 对应match 里面的string
str_pattern = "Python" # pattern 匹配的规则
re_content = re.match("python", str_content)
print(re_content)
# 或者
str_content = "Python is a good language" # 要匹配的内容, 对应match 里面的string
str_pattern = "Python" # pattern 匹配的规则
re_content = re.match("is", str_content)
print(re_content)
5 使用group 注意点
注意当匹配不到内容的时候就使用group 或者span 的时候会报错,所以当使用group 的时候 先判断下是否匹配到内容然后在使用它
例如匹配不到内容的情况下使用group
import re # 导入re 模块
str_content = "Python is a good language" # 要匹配的内容, 对应match 里面的string
str_pattern = "Python" # patterPn 匹配的规则
re_content = re.match("python", str_content)
print(re_content.group())
这样会报错,报错内容如下
添加是否匹配判断
import re # 导入re 模块
str_content = "Python is a good language" # 要匹配的内容, 对应match 里面的string
str_pattern = "Python" # patterPn 匹配的规则
re_content = re.match("python", str_content)
if re_content:
print(re_content.group())
else:
print("没有匹配到内容")
打印结果如下
这样会走到else 里面就不会报错了
6 flag 的使用
写一个忽略大小写的情况
import re # 导入re 模块
str_content = "Python is a good language" # 要匹配的内容, 对应match 里面的string
str_pattern = "Python" # patterPn 匹配的规则
re_content = re.match("python", str_content, re.I)
if re_content:
print(re_content.group())
else:
print("没有匹配到内容")
打印结果如下:
flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
re.I 忽略大小写
re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
re.M 多行模式
re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
re.X 为了增加可读性,忽略空格和 # 后面的注释
来源:https://blog.csdn.net/qq_33210042/article/details/116794784


猜你喜欢
- python保存图片时和原图大小一致之前遇到过一次这个问题,当时解决了但是忘了记录,这里再记录一次好了。1. matplotlib系列的整体
- python可以在处理各种数据时,如果可以将这些数据,利用图表将其可视化,这样在分析处理起来,将更加直观、清晰,以下是 利用 PyEchar
- 什么是标签平滑?在PyTorch中如何去使用它?在训练深度学习模型的过程中,过拟合和概率校准(probability calibration
- 在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作为其他表的外键,形成“主从表结构”,这是数据库设计中常见
- 目录一、Python字典1.什么是字典2.字典的创建方式2.1 通过其他字典创建2.2 通过关键字参数创建2.3 通过键值对的序列创建2.4
- 一、安装selenium打开命令控制符输入:pip install -U selenium火狐浏览器安装firebug:www.firebu
- 基于 python django源码前期准备安装库:pip install django-haystackpip install whoos
- 最近微信迎来了一次重要的更新,允许用户对”发现”页面进行定制。不知道从什么时候开始,微信朋友圈变得越来越复杂,当越来越多的人选择”仅展示最近
- SQL1: --1、查看表空间的名称及大小 SELECT t.tablespace_name, round(SUM(bytes / (102
- SQL SERVER数据库用datetime类型的时候 如果插入NULL,没有问题 如果插入空串"",就会默认1900-
- python-docx的简单使用'''设置表格所有单元格的四个边为0.5磅,黑色,实线可以使用返回值,也可以不使用&
- 前言相信对于python开发人员来说,机器上有不同的python版本是很正常的,因为开发的项目有的用2.6或2.7,有的就要用3.0+版本,
- 先来看一段代码:# ~*~ Twisted - A Python tale ~*~from time import sleep# Hello
- 一、概述 对象是Oracle8i以上版本中的一个新的特性,对象实际是对一组数据和操作的封装,对象的抽象就是类。在面向对象技术中,对象涉及到以
- 图像标注在计算机视觉中很重要,计算机视觉是一种技术,它允许计算机从数字图像或视频中获得高水平的理解力,并以人类的方式观察和解释视觉信息。注释
- 今天一个域名查询系统出现故障,该系统是用的ASP调用XMLHTTP获取whois库的数据,具体错误如下: msxml3.dll 错
- 下面主要介绍配置SQL Server数据库恢复模式的两种方法。用T-SQL设置恢复模式你可以使用“ALTER DATABASE”命令加“SE
- 外部临时表通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为外部临时表。这种临时表只对当前用户可见,当前会话结束
- 只想回答一个问题: 当编译器要读取obj.field时, 发生了什么?看似简单的属性访问, 其过程还蛮曲折的. 总共有以下几个step: 1
- SQL执行步骤的具体分析先来看执行语句的顺序(8)select (9)distinct A (1)from Ta (3)join Tb (2