python正则表达式(7)--flag修饰符、match对象属性
正则表达式—修饰符
正则表达式可以包含一些标志修饰符来控制匹配模式,用在正则表达式处理函数中的flag参数中,为可选参数。
(1) re.I 全写(re.IGNORECASE)
表示使匹配时,忽略大小
(2) re.M 全写(re.MULTILINE)
多行匹配,影响 ^ 和 $的行为
(3) re.S 全写(re.DOTALL)
使点(.)匹配包括换行在内的所有字符
(4) re.X 全写(re.VERBOSE)
这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。
(5) 除以上标志外还有re.L和re.U,但不常用
(6) 可以通过使用运算符“|“来指定多个标志,表示同时生效。
如: re.I | re.M被设置成I和M标志,
content = 'My username is zeke999!'
re.search(r'zeke\d{3}', content, re.I | re.M)
Match对象的属性
(1)string 属性:
获取匹配时使用的字符串对象
>>> m = re.match(r'\d+','456abc')
>>> m.string
'456abc'
(2)re 属性:
匹配时使用的pattern对象,也就是匹配到内容的正则表达 式对象
>>> m
<_sre.SRE_Match object at 0x02C8FA68>
>>> m.re
<_sre.SRE_Pattern object at 0x02D4ECD0>
(3)pos属性:
该属性表示文本中正则表达式开始搜索的索引。值与Pattern.match()和Pattern.seach()方法中的同名参数相同
>>> m.pos
0
(4)endpos属性:
该属性表示文本中正则表达式结束搜索的索引。值与Pattern.match()和 Pattern.seach()方法中的同名参数相同
>>> m.endpos
6
(5)lastindex属性:
该属性表示最后一个被捕获的分组在文本中的索引。如果没有被捕获的分组,将为None
>>> m = re.match(r'a(b)(c)d','abcdef')
>>> m.lastindex
2
(6)lastgroup属性:
该属性表示最后一个被捕获的分组别名。如果这个分 组没有别名或者没有被捕获的分组,将为None。
(7)group([group1, ...]):
获得一个或多个分组截获的字符串;指定多个参数时将以元组形式返回。group1可以使用编 号也可以使用别名;编号0代表匹配的整个子串;默认返回group(0)
实例:group函数传多个参数
p = re.compile('(a(b)c)d')
m = p.match('abcd')
resTup = m.group(1,2,1)
print resTup
>>>('abc', 'b', 'abc')
(8)groups([default=None])
以元组形式返回全部分组截获的字符串。相当于调用group(1,2,…last)
(9)start([group=0])
返回指定的组截获的子串在string中的起始索引(子串第一个字符的索引)。默认为第0组,即整个字符串
(10)end([group=0])
返回指定的组截获的子串在string中的结束索引(子串最后一个字符的索引)。group默认值 为0,即整个字符串
(11)span([group])
该方法表示以元组的形式返回 (start(group), end(group)),即某个分组的匹配文字内容在被 匹配字符串的开始索引位置和结束索引位置
(12)expand(template)
将匹配到的分组代入template中然后返回。template中可以使用\id或\g<id>、\g<name> 引用分组,但不能使用编号0。\id与\g<id>是等价的;但\10将被认为是第10个分组,如果 你想表达\1之后是字符'0',只能使用\g<1>0。
m = re.search(r'(\w+)! (\w+) (\w+)','HMan! How finny!') #将匹配的结果带入 print m.expand(r'resut:\3 \2 \1')
>>> resut:finny How HMan
(13)groupdict([default=None])
该函数的作用是,将所有匹配到并且指定了别名的分组,以别名为key,匹配到的字串为value, 存于字典中,然后返回这个字典。如果表达式中未设置别名分组,就会返回一个空字典
>>> m = re.search(r'(?P<num>\d+)(\w+)','78fd')
>>> m.groupdict()
{'num': '78'}
python正则表达式(7)--flag修饰符、match对象属性的更多相关文章
- python正则表达式--flag修饰符、match对象属性
正则表达式—修饰符 正则表达式可以包含一些标志修饰符来控制匹配模式,用在正则表达式处理函数中的flag参数中,为可选参数. (1) re.I 全写(re.IGNORECASE) 表示使匹配时,忽略大小 ...
- python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别
正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...
- 第11.25节 Python正则表达式编译re.compile及正则对象使用
一. 引言 在<第11.2节 Python 正则表达式支持函数概览>介绍了re模块的主要函数,在<第11.3节 Python正则表达式搜索支持函数search.match.fullm ...
- Python:Day25 成员修饰符、特殊成员、反射、单例
一.成员修饰符 共有成员 私有成员,__字段名,__方法 - 无法直接访问,只能间接访问 class Foo: def __init__(self,name,age): self.name = nam ...
- Python面向对象之成员修饰符
对于这些类成员有修饰符 之前定义字段country任何对象都可以访问,是公有的 可以定义为私用属性,只有类内部的方法可以调用,外部不能直接调用,但是可以间接调用 vim day7-10.py #!/u ...
- 【python】闭包、@修饰符(装饰器)、
闭包:(返回函数的行为叫闭包??) #函数也是对象,所以可以被传递 def line_conf(a,b): def line(x): return a*x+b return line line1=li ...
- Python中的函数修饰符@
首先,什么是函数修饰符?函数修饰符就是对原有函数做一层包装.比如有以下两个函数: 复制代码 def func1(): print 'I am function func1' def func2(): ...
- python 基础 8.5 re 的match对象
#/usr/bin/python #coding=utf-8 #@Time :2017/11/18 21:49 #@Auther :liuzhenchuan #@File :match对象.p ...
- python 正则表达式re使用模块(match()、search()和compile())
摘录 python核心编程 python的re模块允许多线程共享一个已编译的正则表达式对象,也支持命名子组.下表是常见的正则表达式属性: 函数/方法 描述 仅仅是re模块函数 compile(patt ...
随机推荐
- 安装-consul服务发现集群
centos 7.4.x consul 1.2.2 list: 172.16.16.103 172.16.16.112 172.16.16.115 下载: #cd /usr/local/ #wget ...
- 学Redis这篇就够了!
学Redis这篇就够了! 作者:王爷科技 https://www.toutiao.com/i6713520017595433485 Redis 简介 & 优势 Redis 数据类型 发布订 ...
- Lab3:虚拟内存管理
前言 虚拟内存是计算机系统内存管理的一种技术.它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要 ...
- CUDA 到底什么玩意
* CUDA与cuDNN * 什么是CUDA * CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台. CUDA是一种由NVIDIA ...
- 整合去除HTML 标签, 去除开头结尾换行,将连续空格合并为一个
文本是从编辑器中读取数据,有的时候,可能不需要显示格式这个时候需要去除HTML 标签,只引入其中的文本 //去掉html标签 function removeHtmlTab(tab) { return ...
- redis的setIfAbsent
setIfAbsent(K key, V value) 如果键不存在则新增,存在则不改变已经有的值.
- 【转帖】Storm基本原理概念及基本使用
Storm基本原理概念及基本使用 https://www.cnblogs.com/swordfall/p/8821453.html 1. 背景介绍 1.1 离线计算是什么 离线计算:批量获取数据.批量 ...
- FastReport 程序员手册
一.使用TfrxReport 组件工作1.加载并存储报表默认情况下,报表窗体同项目窗体构存储在同一个DFM文件中.多数情况下,无须再操作,因而你就不必采用特殊方法加载报表.如果你决定在文件中存储报表窗 ...
- 百度前端技术学院task13源代码
突然发现只看书不练习也是不行的,这么简单的我竟然都不会写了. 要注意innerHTML,innerText和outText之间的异同. 同时也要会使用DOM2的添加事件,移除事件等 <!DOCT ...
- springboot WebMvcConfigurer配置静态资源和解决跨域
前言 虽然现在都流行前后端分离部署,但有时候还是需要把前端文件跟后端文件一起打包发布,这就涉及到了springboot的静态资源访问的问题.不单只是静态资源打包,比如使用本地某个目录作为文件存储,也可 ...