• 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

  • 相关阅读:
    MVC 中301永久重定向
    String
    redis key设置过期时间
    hbase java 增加列族
    hbase 物理存储
    java 类图
    SSH hql中文查询时乱码快速解决
    json和pickle的序列化与反序列化
    python之生成器与迭代器
    安装traits库心得
  • 原文地址:https://www.cnblogs.com/xinjing-jingxin/p/8904546.html
Copyright © 2020-2023  润新知