• python的正则表达式


    1.re.findall("a","ab")

      a:匹配规则  ab:要匹配的内容

      结果以列表的形式返回:['a']

    2.元字符:".","^","$","*","+","?","{ }","[ ]","|","( )",""

      ".":匹配除换行符“ ”以外任何字符;

    import re
    A = re.findall('ab.d',"abcdefg")
    B = re.findall('ab.e',"abcdefg")
    
    print(A) #['abcd']
    print(B) #[]

      "^":匹配字符串开头

        

    import re
    A = re.findall('^ab',"abcdefg")
    B = re.findall('^bc',"abcdefg")
    
    print(A) #['ab']
    print(B) #[]

      "$":匹配字符串结尾

    import re
    A = re.findall('ab$',"abcdefg")
    B = re.findall('fg$',"abcdefg")
    
    print(A) #[]
    print(B) #['fg']

      "*":匹配前一个字符0次或无限次

    import re
    A = re.findall('ab*',"abbdefg")
    B = re.findall('ab*',"acdefg")
    
    print(A) #['abb']
    print(B) #['a']

      "+":匹配前一个字符1次或无限次

      "?":匹配前一个字符0次或1次

      "{n}":匹配前一个字符n次

      "{n,m}":匹配前一个字符n至m次(闭区间)

      "[ab]":匹配a或b

    import re
    A = re.findall('a[bc]d',"abcdefg")
    B = re.findall('a[bc]d',"abdefg")
    C = re.findall('a[bc]d',"acdefg")
    
    print(A) #[]
    print(B) #['abd']
    print(C) #['acd']

      "":1.反斜杠后面跟元字符,使元字符去除特殊功能

        2.后面跟普通字符,产生特殊功能

        3.引用序列对应的字组所匹配的字符串

    import re
    A = re.search(r"(alex)(eric)com2","alexericcomeric").group()
    
    print(A) #alexericcomeric

        d:匹配任何十进制数,相当于[0-9]

        D:匹配任何非数字字符,相当于[^0-9]

        s:匹配任何空白字符,相当于[ fv]

        S:匹配任何非空白字符,相当于[^ fv]

        w:匹配任何字母数字字符,相当于[a-zA-z0-9]

        W:匹配任何非字母数字字符,相当于[^a-zA-z0-9]

        :匹配一个单词边界,就是指单词和空格间的位置

    3.“*”、“+”、“?”都是贪婪匹配(指尽可能多的匹配),在后面加个"?",可以该非贪婪模式,但如果前后均有限制条件,则取括号中的值

    import re
    A = re.findall(r"a(d+?)","a23b") #非贪婪模式
    B = re.findall(r"a(d+)","a23b")
    
    print(A) #['2']
    print(B) #['23']
    import re
    A = re.findall(r"a(d+?)b","a23b")
    B = re.findall(r"a(d+)b","a23b")
    
    print(A) #['23']
    print(B) #['23']

    4.r表示原生字符,也就是说不转义字符不需要再次被转义

      比如你要表示‘ ’,可以这样:r' '
      但是如果你不用原生字符 而是用字符串你得这样:‘\n’

    5.re.I:使匹配对大小写不敏感

      re.L:做本地化识别(locale-aware)匹配

      re.M:多行匹配,影响^和$

      re.S:使“.”匹配包括换行在内的所有字符

      re.U:根据Unicode字符集解析字符

    6.group():返回被RE匹配的字符串

      start():返回匹配开始的位置

      end():返回匹配结束的位置

      span():返回一个元组包含匹配(开始,结束)的位置

     7.如果在正则表达式中使用了"()",匹配结果为括号中的内容,使用"?:"可以变为非捕获

    import re
    A = re.findall(r"www.(baidu|abc).com","www.baidu.com")
    B = re.findall(r"www.(?:baidu|abc).com","www.baidu.com")
    
    print(A) #['baidu']
    print(B) #['www.baidu.com']
  • 相关阅读:
    Netty源码分析第6章(解码器)---->第3节: 行解码器
    Netty源码分析第6章(解码器)---->第2节: 固定长度解码器
    Netty源码分析第6章(解码器)---->第1节: ByteToMessageDecoder
    Netty源码分析第5章(ByteBuf)---->第10节: SocketChannel读取数据过程
    Netty源码分析第5章(ByteBuf)---->第9节: ByteBuf回收
    Netty源码分析第5章(ByteBuf)---->第8节: subPage级别的内存分配
    Netty源码分析第5章(ByteBuf)---->第7节: page级别的内存分配
    【转】关于Tomcat下项目线程启动两次的问题
    设计模式【单例模式】
    【SQL学习笔记】一、select语句
  • 原文地址:https://www.cnblogs.com/omg-hxy/p/9097925.html
Copyright © 2020-2023  润新知