正则表达式—修饰符

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

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

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

  2. python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别

    正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...

  3. 第11.25节 Python正则表达式编译re.compile及正则对象使用

    一. 引言 在<第11.2节 Python 正则表达式支持函数概览>介绍了re模块的主要函数,在<第11.3节 Python正则表达式搜索支持函数search.match.fullm ...

  4. Python:Day25 成员修饰符、特殊成员、反射、单例

    一.成员修饰符 共有成员 私有成员,__字段名,__方法 - 无法直接访问,只能间接访问 class Foo: def __init__(self,name,age): self.name = nam ...

  5. Python面向对象之成员修饰符

    对于这些类成员有修饰符 之前定义字段country任何对象都可以访问,是公有的 可以定义为私用属性,只有类内部的方法可以调用,外部不能直接调用,但是可以间接调用 vim day7-10.py #!/u ...

  6. 【python】闭包、@修饰符(装饰器)、

    闭包:(返回函数的行为叫闭包??) #函数也是对象,所以可以被传递 def line_conf(a,b): def line(x): return a*x+b return line line1=li ...

  7. Python中的函数修饰符@

    首先,什么是函数修饰符?函数修饰符就是对原有函数做一层包装.比如有以下两个函数: 复制代码 def func1(): print 'I am function func1' def func2(): ...

  8. python 基础 8.5 re 的match对象

    #/usr/bin/python #coding=utf-8 #@Time   :2017/11/18 21:49 #@Auther :liuzhenchuan #@File   :match对象.p ...

  9. python 正则表达式re使用模块(match()、search()和compile())

    摘录 python核心编程 python的re模块允许多线程共享一个已编译的正则表达式对象,也支持命名子组.下表是常见的正则表达式属性: 函数/方法 描述 仅仅是re模块函数 compile(patt ...

随机推荐

  1. BeanPostProcessor

    BeanPostProcessor简介 BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口.接口声明如下: public interface BeanPostProc ...

  2. 微信第三方平台代公众号发起网页授权 48001 api unauthorized 问题

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&gr ...

  3. button 在chrome浏览器下被点击时会出现一个橙色的边框

    问题描述: button在chrome浏览器下被点击时会出现一个橙色的边框 在button上添加 :focus{outline:none;}也无法解决. 解决办法: 在button上添加 :focus ...

  4. hadoop学习之HDFS原理

    HDFS原理 HDFS包括三个组件: NameNode.DataNode.SecondaryNameNode NameNode的作用是存储元数据(文件名.创建时间.大小.权限.与block块映射关系等 ...

  5. ubuntu更改源为aliyun的源;ROS改为新加坡源

    在修改source.list前,最好先备份一份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.old 执行命令打开source.list文件 ...

  6. C# 读取配置指定Config文件--亲测通过

    直接上代码: public class ConfigUtils { public static String GetKey(String configPath,String key) { Config ...

  7. NER(BiLSTM+CRF,Keras)

    数据集为玻森命名实体数据. 目前代码流程跑通了,后续再进行优化. 项目地址:https://github.com/cyandn/practice/tree/master/NER 步骤: 数据预处理: ...

  8. NPOI导出 The maximum column width for an individual cell is 255 characters

    增加如下代码 ) { arrColWidth[column.Ordinal] = ; } //设置列宽 sheet.SetColumnWidth(column.Ordinal, (arrColWidt ...

  9. Java核心技术-读书笔记

    基本语法 Java中的所有函数都属于某个类的方法 Java没有任何无符号的int.long.short 或 byte 类型 浮点数值不适用于无法接受舍入误差的金融计算中,比如2.0-1.1不会输出想要 ...

  10. ZYNQ笔记(6):普通自定义IP封装实现PL精准定时中断

    软件的定时中断很难控制精准触发沿的位置,可以通过 PL-PS 的中断完成精准的定时中断.PL 的中断通过 Verilog 代码产生,这样紧密结合 PS-PL 的处理,发挥各自的优势. 一.PL 侧定时 ...