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

    1.常用符号

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

     2.常用方法
     
    findall:匹配所有符合规律的内容,返回包含结果的列表
    Search:匹配并提取第一个符合规律的内容,返回一个正则表达式对象(object)
    Sub:替换符合规律的内容,返回替换后的值

    import re
    a="xzx123"
    b=re.findall('x',a)
    print(b)
    #['x', 'x']
    import re
    a="zx123"
    b=re.findall('x..',a)
    print(b)
    #['x12']
    import re
    a="xzx123"
    b=re.findall('x*',a)
    print(b)
    #['x', '', 'x', '', '', '', '']
    import re
    a="xzx123"
    b=re.findall('x?',a)
    print(b)
    #['x', '', 'x', '', '', '', '']
    import re
    c="11111xxixx111xxlovexx111xxyouxx11111111111"
    b=re.findall('xx.*xx',c)
    print(b)
    #['xxixx111xxlovexx111xxyouxx']
    #   .*属于贪心算法,会最大限度匹配已xx开头xx结尾的字符串
    import re
    c="11111xxixx111xxlovexx111xxyouxx11111111111"
    b=re.findall('xx.*?xx',c)
    print(b)
    #['xxixx', 'xxlovexx', 'xxyouxx']
    #   .*?属于非贪心算法,找到若干个xx开头结尾的字符串
    import re
    c="11111xxixx111xxlovexx111xxyouxx11111111111"
    b=re.findall('xx(.*?)xx',c)
    print(b)
    #['i', 'love', 'you']
    #   (.*?)匹配出字符串后截取掉括号外的字符,返回括号包围的内容
    #当存在换行符的时候
    import re
    c='''11111xxixx111xxlove
    xx111xxyouxx11111111111'''
    b=re.findall('xx(.*?)xx',c)
    print(b)
    #['i', '111']
    #点号可以匹配所有字符串,除了换行符,当有换行的时候会变成这样的结果
    import re
    c='''11111xxixx111xxlove
    xx111xxyouxx11111111111'''
    b=re.findall('xx(.*?)xx',c,re.S)
    print(b)
    #S会将点号作用范围扩大到换行符,匹配任意字符,包括新的一行
    import re
    c='asdfxxIxx123xxlovexxdfs'
    b=re.search('xx(.*?)xx123xx(.*?)xx',c).group(2)
    print(b)
    #love
    #匹配第二个括号里面的值,group中的数值最大不能超过一共的括号数
    import re
    c='asdfxxIxx123xxlovexxdfs'
    f=re.findall('xx(.*?)xx123xx(.*?)xx',c)
    print(f)
    print(f[0][1])
    #[('I', 'love')]
    #'love'
    #匹配结果是个列表,列表里面是个元组,如果findall中有三个括号,那匹配的元组里面就有三个值
    import re
    c='123abcssfafdsdfs123'
    b=re.sub('123(.*?)123','1233333123',c)
    print(b)
    #'1233333123'
    #替换功能,将c中匹配的元素换成1233333123,返回替换后的字符串
  • 相关阅读:
    树上差分
    Java学习笔记(二)事件监听器
    Java学习笔记(三)Java2D组件
    1066. Root of AVL Tree (25)
    有一种蓝,是神往,是心醉,是心伤
    软考论文的六大应对策略V1.0
    iOS 图形编程总结
    【悼鲁迅】诗一首
    【秋游】诗一首
    【游普罗旺斯薰衣草庄园】诗一首
  • 原文地址:https://www.cnblogs.com/itliucheng/p/5057603.html
Copyright © 2011-2022 走看看