zoukankan      html  css  js  c++  java
  • re

    # res='helelo wee'.replace('e','s',3)    #the first count will replace,前三个将被替换,默认是所有的被替换
    # # print(res)
    # #
    # # res='hello'.find('ll',0,4)  #查找范围[0:4],找到后返回第一个的index
    # # print(res)

    hslslo wse
    2


    import re # print(re.findall('w','hello123')) #所有的字母数字下划线 # print(re.findall('W','hello@wu')) #所有的特殊字符 # ['h', 'e', 'l', 'l', 'o', '1', '2', '3'] # ['@'] # print(re.findall('d','hello123')) # print(re.findall('D','hello123')) # # ['1', '2', '3'] # ['h', 'e', 'l', 'l', 'o'] # print(re.findall('he$','ssshe')) # 以 ‘he’结尾 # print(re.findall('^he','hesss')) #以‘he’开头 # print(re.findall('^he$','hessshe')) #只找'he' # ['he'] # ['he'] # [] .默认指任意一个字符(除换行) ‘aXb’ x可以是空格 # print(re.findall('a.b','amb')) # print(re.findall('a.b','alb a*b a ab a bb a aaab')) # print(re.findall('a.b','a b')) # print(re.findall('a.b','a b',re.DOTALL)) #支持换行 # # ['amb'] # ['alb', 'a*b', 'a b', 'aab'] # [] # ['a b'] * 前面的一个字符没有,重复0次,或n次 #a*b===b,ab,aaaab # print(re.findall('a*b','amb')) # print(re.findall('a*b','alb a*b a ab a bb a aaab')) #ab 满足二个(b,ab)取长的ab,贪婪 # print(re.findall('a*b','a b')) # # ['b'] # ['b', 'b', 'ab', 'b', 'b', 'aaab'] # ['b']

    #a?b==b,ab       ?前面的一个字符没有,或者只有一次
    print(re.findall('a?b','amb'))
    print(re.findall('a?b','alb a*b a ab a bb a aaab')) #取长不取短
    print(re.findall('a?b','a b'))

    
    

    ['b']
    ['b', 'b', 'ab', 'b', 'b', 'ab']
    ['b']

    #a+b==ab,aaaab   #前面的一个字符重复一次或者多次
    print(re.findall('a+b','amb'))
    print(re.findall('a+b','alb a*b a ab a bb a aaab'))
    print(re.findall('a+b','a b'))

    []
    ['ab', 'aaab']
    []

    
    
    print(re.findall('d+.?d*','adf123dsfds23..34fasf4fd5'))
    #d+:一个或者多个数字,至少有一个
    .?:小数点,可以没有或者最多有一个
    d*:0个或者多个数字,不限定

    ['123', '23.', '34', '4', '5'] #不会有.34

    #a.*b==a..................b .代表任意字符(除换行)
    print(re.findall('a.*b','ab acb annnbb ajljjlkub adfbfdsfsf'))

    ['ab acb annnbb ajljjlkub adfb'] #贪婪匹配,返回最长的
    
    
    print(re.findall('a.*b','ab ac
    b annnbb ajljjlkub adfbfdsfsf'))    #
     打断
    ['ab', 'annnbb ajljjlkub adfb'] #返回2个

    #a.*?b===ab,a.b,a..b,a....b 谁先找到就是谁 ?前面的字符可以没有
    print(re.findall('a.*?b','abfdfb'))
    print(re.findall('a.*?b','acbjkljbbbb')) #非贪婪,返回最短的那个
    ['ab']
    ['acb']

    print(re.findall('ab{2}','abbb abbbbbbb'))      #只要有2个的,其他不要
    print(re.findall('ab{2,4}','ab abb abbb abbbb abbbbbbb')) #有2个到4个都可以 ,其他不要
    print(re.findall('ab{1,}','a ab abbbb ')) #1 最少要有一个 ab
    print(re.findall('ab{0,}','a ab abbb')) #0 可以一个都没有 a

    ['abb', 'abb']
    ['abb', 'abbb', 'abbbb', 'abbbb']
    ['ab', 'abbbb']
    ['a', 'ab', 'abbb']
    
    
    print(re.findall('a[w*-]b','ab awb a*b a-b a**b aw*b'))
    #[] 里面的只能选一个(必须选一个,不能为空ab)
    print(re.findall('a[^*_&]b','ab anb a*b a_b')) #【】里面的一个不选,(但是为空也不行 ab也不满足条件)
    ['awb', 'a*b', 'a-b']
    ['anb']

    print(re.findall(r'a\c','ac'))      #如果不加r ,正则解析成‘ac’,python 继续解析c发现没有c报错;加r后,等于解释器不再解析了
    ['a\c']
    ()分组

    print(re.findall('ab+','ababab123'))
    print(re.findall('(ab)+123','ababab123'))
    print(re.findall('(?:ab)+123','wkababab123'))
    print(re.findall('href="(.*?)"','<a href="http://www.baidu.com">haha</a>'))
    #['http://www.baidu.com'] 默认只显示()里面的内容,()是个个体
    print(re.findall('href="(?:.*?)"','<a href="http://www.baidu.com">haha</a>'))#?:显示所有要找的字符串‘href=...’,等于从href开始算,是整体

    ['ab', 'ab', 'ab']
    ['ab']
    ['ababab123']
    ['http://www.baidu.com']
    ['href="http://www.baidu.com"']
    
    
    print(re.findall('compan(?:y|ies)','Too many companies have gone bankrupt, and the next one is my company'))
    print(re.findall('compan(y|ies)','Too many companies have gone bankrupt, and the next one is my company'))

    
    

    ['companies', 'company'] #整体
    ['ies', 'y'] #个体

     
  • 相关阅读:
    一文摸透从输入URL到页面渲染的过程
    JavaScript实现哈希表
    JavaScript数据结构与算法博客目录
    JavaScript实现图结构
    从宏观到细节为你讲解前端性能优化
    详解HTTP协议
    JavaScript实现排序算法
    Google Stadia免费试用两个月
    安卓手机调成黑白屏幕
    UWP Xbox上隐藏键盘⌨
  • 原文地址:https://www.cnblogs.com/wuxi9864/p/9926014.html
Copyright © 2011-2022 走看看