• python正则表达式练习


    正则表达式修饰符 - 可选标志
    正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:
    修饰符    描述
    re.I    使匹配对大小写不敏感
    re.L    做本地化识别(locale-aware)匹配
    re.M    多行匹配,影响 ^ 和 $
    re.S    使 . 匹配包括换行在内的所有字符
    re.U    根据Unicode字符集解析字符。这个标志影响 w, W, , B.
    re.X    该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
    #!/usr/bin/python3
     
    import re
     
    line = "Cats are smarter than dogs";
     
    searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
     
    if searchObj:
       print ("searchObj.group() : ", searchObj.group())
       print ("searchObj.group(1) : ", searchObj.group(1))
       print ("searchObj.group(2) : ", searchObj.group(2))
    else:
       print ("Nothing found!!")
    searchObj.group() :  Cats are smarter than dogs
    searchObj.group(1) :  Cats
    searchObj.group(2) :  smarter
    emphasis_pattern = r'*([^*]+)*'
    或者
    emphasis_pattern = re.compile(r'''
    ... * # 起始突出标志——一个星号
    ... ( # 与要突出的内容匹配的编组的起始位置
    ... [^*]+ # 与除星号外的其他字符都匹配
    ... ) # 编组到此结束
    ... * # 结束突出标志
    ... ''', re.VERBOSE)
    
    re.sub(emphasis_pattern, r'<em>1</em>', 'Hello, *world*!')
    
    结果:
    'Hello, <em>world</em>!'
    
    其中1为逆向引用

    详细参见

    http://www.runoob.com/python3/python3-reg-expressions.html#flags

  • 相关阅读:
    kvm介绍
    正式班D24
    正式班D23
    正式班D21
    正式班D20
    正式班D19
    正式班D18
    正式班D17
    正式班D16
    正式班D15
  • 原文地址:https://www.cnblogs.com/xinjing-jingxin/p/8904546.html
Copyright © 2020-2023  润新知