• re模块的使用


    re模块下的函数

    compile(pattern):创建模式对象

    import re
    pat = re.compile('D')
    m = pat.search('CBA')  #等价于re.search('A', 'ABC')
    n = pat.search('BCD')
    
    if m:
        print("####")
    if n:
        print("****")
    

    search(pattern,string):在字符串中寻找模式

    m = re.search('asd','ASDasd')
    print(m) 
    ##<_sre.SRE_Match object at 0xb72cd6e8>  #匹配到了,返回MatchObject(True)
    n = re.search('asd','ASDASD')
    print(n)
    ## None                                   #没有匹配到,返回None(False)
    

    match(pattern,string):在字符串开始处匹配模式

    m = re.match('asd','asdasd')
    print(m)
    ## <_sre.SRE_Match object at 0xb72cd6e8>  #匹配到了,返回MatchObject(True)
    n = re.match('asd','ASDASD')
    print(n)
    # 等价于
    pat=re.compile('a')
    print(pat.match('Aasd'))
    print(pat.match('aASD'))
    

    split(pattern,string):根据模式分割字符串,返回列表

    re.split(',','a,s,d,asd')
    ## 返回列表['a', 's', 'd', 'asd']  
    
    #等价于
    pat = re.compile(',')
    pat.split('a,s,d,asd')
    #返回列表['a', 's', 'd', 'asd']          
    
    re.split('[, ]+','a ,  s  ,d     ,,,,,asd')   #正则匹配:[, ]+,后面说明
    ##返回列表['a', 's', 'd', 'asd']
    
    re.split('[, ]+','a ,  s  ,d     ,,,,,asd',maxsplit=2) # maxsplit 最多分割次数
    ## 返回列表['a', 's', 'd     ,,,,,asd']
    
    pat = re.compile('[, ]+')                     #正则匹配:[, ]+,后面说明
    pat.split('a ,  s  ,d     ,,,,,asd',maxsplit=2)        # maxsplit 最多分割次数
    ## 返回列表['a', 's', 'd     ,,,,,asd']
    

    findall(pattern,string):列表形式返回匹配项

    re.findall('a','ASDaDFGAa')
    # ['a', 'a']                           #列表形式返回匹配到的字符串
    
    pat = re.compile('a')
    pat.findall('ASDaDFGAa')
    # ['a', 'a']                           #列表形式返回匹配到的字符串
    pat = re.compile('[A-Z]+')       #正则匹配:'[A-Z]+' 
    pat.findall('ASDcDFGAa')
    ## ['ASD', 'DFGA']                      #找到匹配到的字符串
    
    pat = re.compile('[A-Z]')
    pat.findall('ASDcDFGAa')         #正则匹配:'[A-Z]+' 
    ## ['A', 'S', 'D', 'D', 'F', 'G', 'A']  #找到匹配到的字符串
    
    pat = re.compile('[A-Za-z]')     #正则匹配:'[A-Za-z]+' 匹配所有单词,后面有说明
    pat.findall('ASDcDFGAa')
    

    sub(pat,repl,string) :用repl替换 pat匹配项

    re.sub('a','A','abcasd')   #找到a用A替换,后面见和group的配合使用
    ## 输出 'AbcAsd'
    
    # 等价于
    pat = re.compile('a')
    pat.sub('A','abcasd')
    ## 输出'AbcAsd'
    
    ## 网址:https://www.zhihu.com/search?q=python%20re模块&utm_content=search_history&type=content(更详细)
    
  • 相关阅读:
    单链表的逆转
    树的子结构和树的深度
    升级版爬楼梯问题
    蛇形数组
    正则表达式匹配
    构建乘积数组
    N皇后问题
    IOS计算文字高度
    Block的copy时机
    转:CocoaPods pod install/pod update更新慢的问题
  • 原文地址:https://www.cnblogs.com/ffjsls/p/11349709.html
Copyright © 2020-2023  润新知