正则表达式—修饰符

正则表达式可以包含一些标志修饰符来控制匹配模式,用在正则表达式处理函数中的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正则表达式--flag修饰符、match对象属性的更多相关文章

  1. python正则表达式(7)--flag修饰符、match对象属性

    正则表达式—修饰符 正则表达式可以包含一些标志修饰符来控制匹配模式,用在正则表达式处理函数中的flag参数中,为可选参数. (1) re.I 全写(re.IGNORECASE) 表示使匹配时,忽略大小 ...

  2. 第11.13节 Python正则表达式的转义符”\”功能介绍

    为了支持特殊元字符在特定场景下能表示自身而不会被当成元字符进行匹配出来,可以通过字符集或转义符表示方法来表示,字符集表示方法前面在<第11.4节 Python正则表达式搜索字符集匹配功能及元字符 ...

  3. python - 类成员修饰符

    在java,c#类的成员修饰符包括,公有.私有.程序集可用的.受保护的. 对于python来说,只有两个成员修饰符:公有成员,私有成员 成员修饰符是来修饰谁呢?当然是修饰成员了.那么python类的成 ...

  4. Python 中的@修饰符作用

    在Python 2.4以上的的函数中偶尔会看到函数定义的上一行有@functionName的修饰,这一下这个语法细节,其实这有点像C语言带参数的宏操作,解释器读到这样的修饰之后,会先解析@后的内容,直 ...

  5. PHP正则表达式模式修饰符 /i, /is, /s, /isU等

    模式修饰符 下面列出了当前可用的 PCRE 修饰符.括号中提到的名字是 PCRE 内部这些修饰符的名称. 模式修饰符中的空格,换行符会被忽略,其他字符会导致错误. i (PCRE_CASELESS) ...

  6. python中的 @ 修饰符

    今天学习廖老师的python教程,碰到了修饰符'@',不太了解,查看了下官方文档. 简单的整理下: @dec2 @dec1 def func(arg1, arg2, ...): pass 等价于 de ...

  7. Python之 ---成员修饰符

    一:成员修饰符:分为共有成员和私有成员: 私有成员:__通过两个下滑线:无法直接访问,要访问只能间接访问: 如下我们定义了一个对象,里面有两个共有的成员变量,成员变量是共有的时候我们可以外部访问,如果 ...

  8. python正则表达式详解之Match类及其方法

    1.Match对象简介 match对象通常是由正则表达式对象的match 方法,search 方法等经过匹配之后而产生.可以直接当做bool值使用,如果匹配则相当于True, 如果不匹配,则返回Non ...

  9. PHP正则表达式模式修饰符详解

    PHP模式修饰符又叫模式修正符,是在正则表达式的定界符之外使用.主要用来调整正则表达式的解释,提扩展了正则表达式在匹配.替换等操作的某些功能,增强了正则的能力.但是有很多地方的解释都是错误的,也容易误 ...

随机推荐

  1. 【HTML】行内-块级-行块级

    行内元素 相邻元素可以在一行显示直到一行排不下才进行换行. 不可设置宽高,宽度随内容变化. padding和margin的设置中,水平方向(padding-left...)有效果,垂直方向无效果. 块 ...

  2. 上传图片,通过node服务器存储在指定目录

    最近做毕设,需要上传图片,因为在本地服务器运行,所以想着前端上传后,通过node服务器接收图片,存储在指定的目录下. 一.前端实现 1.前端的页面和上传图片是利用element-ui组件实现的,&qu ...

  3. Day 1 上午

    唉,上午就碰到一个开不了机的电脑,白白浪费了半个小时,真的难受QwQ POINT1 枚举 枚举也称作穷举,指的是从问题所有可能的解的集合中一一枚举各元素. 用题目中给定的检验条件判定哪些是无用的,哪些 ...

  4. BlockQueue 解析

    生产者.消费者模式 https://www.jianshu.com/p/024a36b83099

  5. What Kind of Friends Are You? ZOJ 3960

    比赛的时候用vector交集做的...情况考虑的不全面  wrong到疯 赛后考虑全了情况....T了 果然 set_intersection  不能相信 嗯 不好意思 交集a了  第二个代码 求出来 ...

  6. 【简】题解 AWSL090429 【市场】

    因为这有个时间的限制 并且  求的时间都是前缀和 那么 我们可以根据时间将排序 因为题中没有修改可以直接用背包预处理出答案 但是因为题目ci mi<=1e9   vi<=300 所以发现不 ...

  7. jQuery动态添加、删除按钮及input输入框

    输入框的加减实现: <html> <head> <meta charset="utf-8"> <title>动态创建按钮</t ...

  8. SNOI 2019 字符串

    SNOI 2019 字符串 题目 题解: 解法一: 记一个数组\(f\),\(f[i]=\min_j\ s[j]\neq s[j+1] (j\geq i)\),直接sort即可,复杂度\(O(nlog ...

  9. eclipse Tomcat 容器已经启动 但右下角 progress 一直显示100%

    今天在家里 遇到一个问题 先上图 我的默认超时时间 eclipse 默认的 45s   果然 到了时间 依旧是 显示超时 解决方法其实   很简单   我看到网上有人说是tomcat 或者 eclip ...

  10. python正则表达式Re模块备忘录

    title: python正则表达式Re模块备忘录 date: 2019/1/31 18:17:08 toc: true --- python正则表达式Re模块备忘录 备忘录 python中的数量词为 ...