• python正则表达式--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'zeked{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'}

  • 相关阅读:
    2020.8.8第三十三天
    2020.8.7第三十二天
    2020.8.6第三十一天
    《大道至简》读后感
    2020.8.5第三十天
    2020.8.4第二十九天
    2020.8.3第二十八天
    2020.8.2第二十七天
    MySQL学习笔记(31):监控
    MySQL学习笔记(30):高可用架构
  • 原文地址:https://www.cnblogs.com/jinan1/p/10760878.html
Copyright © 2020-2023  润新知