zoukankan      html  css  js  c++  java
  • Python正则表达式

    1.常用符号

    . 匹配任意字符
    * 匹配前一个字符0次或无限次
    ? 匹配前一个字符0次或1次
    .* 贪心算法
    .*? 非贪心算法
    () 括号内的数据作为结果返回

    .的用法

    import re
    a = 'xy123'
    b = re.findall('x.',a)
    print b#['xy']

    *的用法

    import re
    a = 'xy123'
    b = re.findall('x*',a)
    print b#['x', '', '', '', '', '']

    ?的用法

    import re
    a = 'xy123'
    b = re.findall('x.*?',a)
    print b#['x']

    .*的用法

    import re
    a = 'xy123xy456xy789xy987xy654xy321'
    print re.findall('xy.*xy', a)   #['xy123xy456xy789xy987xy654xy']
    print re.findall('xy.*?xy', a)  #['xy123xy', 'xy789xy', 'xy654xy']

    ()的用法

    import re
    a = 'xy123xy456xy789xy987xy654xy321'
    print re.findall('xy.*?xy', a)#['xy123xy', 'xy789xy', 'xy654xy']
    print re.findall('xy(.*?)xy', a)#['123', '789', '654']

    re.S的用法

    import re
    a = '''xy123'
        xy456xy789xy987xy654xy321'''
    print re.findall('xy.*?xy', a)#['xy456xy', 'xy987xy']
    print re.findall('xy(.*?)xy', a)#['456', '987']
    
    print re.findall('xy.*?xy', a, re.S)#["xy123'
        xy", 'xy789xy', 'xy654xy']
    print re.findall('xy(.*?)xy', a, re.S)#["123'
        ", '789', '654']

    search用法

    import re
    a = 'xy123xy456xy789xy987'
    print re.search('xy(.*?)xy456xy(.*?)xy', a).group()#xy123xy456xy789xy
    print re.search('xy(.*?)xy456xy(.*?)xy', a).group(1)#123
    print re.search('xy(.*?)xy456xy(.*?)xy', a).group(2)#789
    
    print re.findall('xy(.*?)xy456xy(.*?)xy', a)[0][0]#123

    sub用法

    import re
    a = 'xy123xy'
    print re.sub('xy(.*?)xy','XY%dXY'%321, a)#XY321XY

    匹配数字

    import re
    a = 'xy123xy'
    print re.findall('(d+)', a)#['123']
  • 相关阅读:
    洛谷1968美元汇率 dp
    洛谷luogu2782
    题解 AT2243 【正方形のチップ】
    [HAOI2006]聪明的猴子 题解
    D:苏卿念发红包
    c++小游戏——扫雷
    c++小游戏——拯救公主
    c++小游戏——三国杀
    C++小游戏——井字棋
    c++小游戏——杀手
  • 原文地址:https://www.cnblogs.com/kimisme/p/5572731.html
Copyright © 2011-2022 走看看