zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    java 字符串split有很多坑,使用时请小心!!
    Java并发编程:线程池的使用
    java自带线程池和队列详细讲解
    merge into的用法
    Oracle中如何使用REGEXP_SUBSTR函数
    oracle分组统计某列逗号隔开数据
    oracle一列中的数据有多个手机号码用逗号隔开,我如何分别取出来?
    css box-shadow使用---转
    201706问题记录
    201705问题记录
  • 原文地址:https://www.cnblogs.com/xinjing-jingxin/p/8904546.html
Copyright © 2011-2022 走看看