美文网首页
Python入门与进阶(10-7)

Python入门与进阶(10-7)

作者: buaishengqi | 来源:发表于2018-05-08 21:46 被阅读69次

    10-7 匹配0次1次或者无限多次

    # 数量词
    #   *  匹配*前面的字符0次或者无限多次
    # +  匹配*前面的字符1次或者无限多次
    # ?  匹配?前面的字符0次或者1次
    import re 
    a = 'pytho0python1pythonn2'
    r = re.findall('python*',a) #  用* ,匹配*前面的字符0次或者无限多次
    print(r)
    # 打印结果如图1
    
    # +  匹配*前面的字符1次或者无限多次
    import re 
    a = 'pytho0python1pythonn2'
    r = re.findall('python+',a) #  用+ ,匹配+前面的字符1次或者无限多次
    print(r)
    # 打印结果如图2
    
    
    # ?  匹配?前面的字符0次或者1次
    import re 
    a = 'pytho0python1pythonn2'
    r = re.findall('python?',a) #  用? ,匹配?前面的字符0次或者1次
    print(r)
    # 打印结果如图3 ,打印第三个Python的时候,虽然是pythonn,但是打印出来的仍然是Python,
    # 只是匹配了0次或者1次,多余的n都会被略去
    
    
    # 在和贪婪与非贪婪中的?相比较的时候,贪婪与非贪婪出现的是范围,加问号表示非贪婪
    # 这里表示:匹配?前面的字符0次或者1次
    
    
    
    # 看看下面三段代码的意义和结果
    import re 
    a = 'pytho0python1pythonn2'
    r = re.findall('python?',a) #  用? ,匹配?前面的字符0次或者1次
    print(r)
    
    
    import re 
    a = 'pytho0python1pythonn2'
    r = re.findall('python{1,2}?',a) #  用python{1,2}?表示非贪婪
    print(r)
    
    
    import re 
    a = 'pytho0python1pythonn2'
    r = re.findall('python{1,2}',a) #  用python{1,2}表示贪婪
    print(r)
    # 打印结果如图4,三段代码的结果截然不同,意义不一样
    
    1.jpg 2.jpg 3.jpg 4.jpg

    相关文章

      网友评论

          本文标题:Python入门与进阶(10-7)

          本文链接:https://www.haomeiwen.com/subject/tdzwrftx.html