• 正则


    []/*指定一个字符集,用来匹配其中的任意一个字符*/
    #coding:utf-8
    import re
    s = r'abc'/*定义时r不能丢,只是正则的一种形式,表示abc字符串*/                      元字符在字符集中不起作用[amk$]
    print re.findall(s,"aaaaaaaaaaaaaaaaaaaaaa")
    print re.findall(s,"aaaaaaabcaaaaaaaaaabcaa")
    st="top tip tap twp tep"
    res = r"top"
    print re.findall(res,st)
    res = r"t[io]p"/*表示取tip或者top都被取到[]表示或者的意思*/
    print re.findall(res,st)
    res=r"t[^io]p"/*表示除了tip,top都能被取到,^表示除了*/
    print re.findall(res,st)

    D:Python安装程序python.exe C:/Users/欢/PycharmProjects/untitled/ll.py
    []
    ['abc', 'abc']
    ['top']
    ['top', 'tip']
    ['tap', 'twp', 'tep']

    Process finished with exit code 0


    #coding:utf-8
    import re
    s = "hello word, hello word"
    r = r"hello"
    print  re.findall(r,s)/*用r这个正则来匹配s这个字符串*/
    r = r"^hello"/*只取开头单词hello*/
    print  re.findall(r,s)
    s = "word,hello word"
    print re.findall(r,s)/*若开头不是hello,则输出一个空列表*/
    r = r"word$"/*取最末尾的单词Word*/
    print re.findall(r,s)
    D:Python安装程序python.exe C:/Users/欢/PycharmProjects/untitled/ll.py
    ['hello', 'hello']
    ['hello']
    []
    ['word']

    Process finished with exit code 0


    r = r"x[0-9]x"/*表示0到9这十个数字*/
    print re.findall(r.‘x1x x2x x9x')
    r = "t[abc$]"/*在方括号中$和^只表示符号,无任何实际意义*/


    #coding:utf-8
    import re
    r = r"^abc"
    print re.findall(r,"abc")
    print re.findall(r,"^abc")
    r = r"^abc"/*把特殊字符当成普通字符处理*/
    print re.findall(r,"^abc")
    D:Python安装程序python.exe C:/Users/欢/PycharmProjects/untitled/ll.py
    ['abc']
    []
    ['^abc']

    Process finished with exit code 0
    d匹配任何十进制数,它相当于[0-9]
    D匹配任何非数字字符,它相当于类[^0-9]
    s匹配任何空白字符,它相当于类[ fv]
    S匹配任何非空字符,它相当于类[^ fv]
    w匹配任何字母数字字符,它相当于类[a-zA-Z0-9]
    W匹配任何非字母数字字符,它相当于类[^a-zA-Z0-9]
      


    #coding:utf-8
    import re
    r = r"^010-?d{8}$"/*-?表示-可有可无,{x}表示d重复x次,^表示开头数$表示结尾数*/
    print re.findall(r,'010-2343245')
    print re.findall(r,'010-23456789')

    r = r"ab*"/*b的重复数字可以是零次一次或更多*/
    print re.findall(r,"a")
    print re.findall(r,"abbbbbb")
    r = r"ab+"/*贪婪模式,做最大匹配即输出所有的字符*//*+表示重复数字至少有一次*/
    print re.findall(r,"a")
    print re.findall(r,"ab")
    print re.findall(r,"abbbbbb")
    r = r"ab+?"/*非贪婪模式,做最小匹配,即只输出重复数字一次*/
    print re.findall(r,"abbbbbbbbbbbb")
    D:Python安装程序python.exe C:/Users/欢/PycharmProjects/untitled/ll.py
    []
    ['010-23456789']
    ['a']
    ['abbbbbb']
    []
    ['ab']
    ['abbbbbb']
    ['ab']

    Process finished with exit code 0

    #coding:utf-8
    import re
    r = r"a{1,3}"/*至少有1个重复,最多有3个重复*/
    print re.findall(r,'a')                                                      {0,}等同于*  {1,}等同于+   {0,1}等同于?                                                  
    print re.findall(r,'d')
    print re.findall(r,'aaaaa')/*若大于3,则分成多个字符串出现*/
    D:Python安装程序python.exe C:/Users/欢/PycharmProjects/untitled/ll.py
    ['a']
    []
    ['aaa', 'aa']

    Process finished with exit code 0

    #coding:utf-8
    import re
    r1 =r"d{3,4}-?d{8}\"       /*加r时后边不会被特殊处理,不加r,打印就会报错*/
    print re.findall(r1,"010-12345677\")
    p_tel=re.compile(r1)      *用re.compile编译正则表达式*
    print p_tel
    print p_tel.findall('010-234455628\')   *缺点:输出字节只根据要求长度进行截取*

    csvt_re = re.compile(r'csvt',re.I)        *后边的re.I使用后可以不用区分大小写*
    print csvt_re.findall('CSVT')
    print csvt_re.findall('Csvt')
    D:Python安装程序python.exe C:/Users/欢/PycharmProjects/untitled/ll.py
    ['010-12345677\']
    <_sre.SRE_Pattern object at 0x0258E248>
    []
    ['CSVT']
    ['Csvt']

    Process finished with exit code 0


    #coding:utf-8
    import re
    r1 = r"csvt.net"*点的含义是点或者一个字母*
    print re.findall(r1,'csvt.net')
    print re.findall(r1,'csvtonet')
    print re.findall(r1,'csvt net')
    print re.findall(r1,'csvt net',re.S)*大写的S和点搭配使用的含义是包括换行在内的所有字符*
    D:Python安装程序python.exe C:/Users/欢/PycharmProjects/untitled1/.idea/正则符号的使用.py
    ['csvt.net']
    ['csvtonet']
    []
    ['csvt net']

    Process finished with exit code 0

    Process finished with exit code 0

    #coding:utf-8
    import re
    s="""
    hello csvt
    csvt hello
    hello csvt hello
    csvt hehe
    """
    r = "^csvt"
    print re.findall(r,s)
    print re.findall(r,s,re.M)   /*若输入为多行的时候re.M可以与$和^一起使用,使^和$发挥之前的作用*/
    D:Python安装程序python.exe C:/Users/欢/PycharmProjects/untitled2/正则表达式.py
    []
    ['csvt', 'csvt']

    Process finished with exit code 0


    #coding:utf-8
    import re
    tel = r"""
    d{3,4}
    -?
    d{8}                           X与verbose意思一样
    """
    print re.findall(tel,'010-12345678',re.X)/*正则为多行的时候用re.X可以输出成一行*/
    D:Python安装程序python.exe C:/Users/欢/PycharmProjects/untitled2/正则表达式.py
    ['010-12345678']

    Process finished with exit code 0

    #coding:utf-8
    import re
    email = r"w{3}@w+(.com|.cn)"               *可以有分组,返回值优先返回分组中的数据,分组中可以出现或这种关系*
    print re.findall(email,'zzz@csvt.com')

  • 相关阅读:
    Oracle登录报错-ORA-00119
    Oracle11g配置监听
    Python Turtle模块的简单应用
    Turtle模块基本方法和使用(画布)
    python+selenium自动化禅道登录测试
    Xlrd模块读取Excel文件数据
    Selenium原理
    Axure中的登陆界面和动画轮播
    SQL Server创建用户并分配权限
    EF实体框架创建方法
  • 原文地址:https://www.cnblogs.com/ZHANG576433951/p/6013166.html
Copyright © 2020-2023  润新知