zoukankan      html  css  js  c++  java
  • python-re模块的使用

    import  re
    '''
    w, 匹配数字、字母、下划线
    W,非数字字母下划线
    d,匹配数字
    D,非数字
    s,匹配空格、
    ,	,  
    S,非
    [a-zA-Z_] a-z或者A-Z或者下划线中的一个字符
    . 匹配所有
    *  表示前面的字符有0个或多个
    +  前面的字符至少有一个
    {n,m}  前面的字符有n——m个
    
    '''
    
    print(re.match('abc','abcde').group())#从开头就匹配,
    print(re.search('abc','aaabcabc').group())  #查找整个字符串,只要找到一个符合的就停止查找
    print(re.findall('abc','abcaaabc'))   #返回的是个列表,查找整个字符串,返回所有符合规格的字符串['abc', 'abc']
    print(re.findall(r'w','ab c * 
     	'))#['a', 'b', 'c']
    print(re.findall('W','ab 1 2* _
    '))#[' ', ' ', '*', ' ', '
    ']
    print(re.findall('s','ab 1 2* _
    '))#[' ', ' ', ' ', '
    ']
    print(re.findall('S','ab 1 2* _
    '))#['a', 'b', '1', '2', '*', '_']
    print(re.findall('d','ab 1 2* _
    '))#['1', '2']
    print(re.findall('D','ab 1 2* _
    '))#['a', 'b', ' ', ' ', '*', ' ', '_', '
    ']
    print(re.findall('w_sb','a_sb b_sb ll_sb'))#['a_sb', 'b_sb', 'l_sb']
    print(re.findall('a.c','abc adddvc abbbbc')) #['abc']
    print(re.findall('a.*c','abc adddvc abbbbc'))#['abc adddvc abbbbc'] 贪婪的
    print(re.findall('a.*?c','abc adddvc abbbbc'))#['abc', 'adddvc', 'abbbbc'] ?与*或者+链接就是就是非贪婪模式
    print(re.findall('ab?','a ab ab abbbb')) #?与字符串链接就是前面的字符是一个或者0个 ['a', 'ab', 'ab', 'ab']
    print(re.findall('ab*','a ab abb abbbc'))#['a', 'ab', 'abb', 'abbb']
    print(re.findall('ab+','a ab abb abbbc'))#['ab', 'abb', 'abbb']
    print(re.findall('ab{2,3}','a ab abb abbb abbbbb'))#['abb', 'abbb', 'abbb'] {}这个模式可以代替*,+,?  {0,} {1,}{0,1}
    print(re.findall(r'(d{3})-(d{6,8})','010-123456 010-12333333'))#[('010', '123456'), ('010', '12333333')]
    
    print(re.findall(r'href=".*"','<a id="blog_nav_sitehome" class="menu" href="https://www.cnblogs.com/">博客园</a>'))#['href="https://www.cnblogs.com/"']
    import re
    
    
    
    a = re.findall(r'^re','readbre')   # ^表示开头就匹配。如果再[]中使用^表示取反。除了[]内以外的
    a1 = re.findall(r'[^a-z]123b','1123b 4123b a123b')  #除了[^]内以外的
    
    b = re.findall(r're$','readbre')  #  $ 结尾是re的
    
    c = re.findall(r're*','reeee re r')  #*代表前面的字符可以出现0次或多次
    c1 = re.findall(r're*?','reeee re r')  #*?表示不贪婪,取0次
    
    d = re.findall(r're+','reeee re r')  #+代表前面的字符可以出现一次或多次
    d1 = re.findall(r're+?','reeee re r') #+?表示不贪婪,取1次
    
    d2 = re.findall(r're?','reeee re r')  #   ?单独使用表示前面的字符出现0或1次
    
    e = re.findall(r're{3,5}','reeee ree re') # {} 表示前面的字符出现{3-5}次
    '''有了{}可以取代*和+了
    {,} 就可以表示 0或多次
    {1,} 就可以表示1或多次
    '''
    f = re.findall(r're[a-z]','re1  re9 rea reb')  #  [a-z]  其中一个
    
    f1 = re.match(r're(d)(d)','re13  re9 rea reb')  #  ()代表分组了
    print(f1.group())   #re13
    print(f1.groups())   #('1', '3')
    '''
    print(r.group())     # 获取匹配到的所有结果,不管有没有拿出来
    print(r.groups())    # 获取模型中匹配到的分组结果,只拿出匹配分组将匹配到的全部到的字符串中分组部分的结果
    '''
    
    
    f2 = re.split(r'0','103405050607080')
    print(f2)
    
    string = 'tom say:i love python,非常喜欢。'
    f3 = re.findall(',(.*)。',string)
    print(f3)
    
    
    '''匹配所有数字(包含小数)'''
    g = re.findall(r'd+.?d*','asd123.24gsd234fdg34.3hkj..123')
    print(g)
  • 相关阅读:
    Shell 基础
    史上最全储能系统优缺点梳理
    IEEE文章分类
    【能源常识】如何理解“电力电量平衡”
    最优化基础(五)
    最优化基础(四)
    json
    python基础知识之zip
    Python sendmail
    指定的结尾换行
  • 原文地址:https://www.cnblogs.com/tarzen213/p/11117204.html
Copyright © 2011-2022 走看看