• Python学习第十三课——re(正则表达式)模块


    .的用法

    import re
    
    s = 'fhsdjakaxdsancjh'
    # .代表一个元素,完成模糊匹配
    res = re.findall("a..x", s)  # 找到s中以a开头x结尾中间有两个元素的结果
    print(res)  # ['akax']
    
    res1 = re.findall("^f..d", s)  # ^代表只能从字符串的开头进行匹配
    print(res1)  # ['fhsd']
    
    res2 = re.findall("n..h$", s)  # $代表必须以h结尾
    print(res2)  # ['ncjh']

    重复匹配

    # 重复匹配(*,+,?)
    s1 = 'seyqindddddiznsk'
    res = re.findall("ind*", s1)  # *是匹配0到无穷次 (贪婪匹配)
    print(res)  # ['inddddd']
    
    res1 = re.findall("ind+", s1)  # +是匹配1到无穷次(贪婪匹配)
    print(res1)  # ['inddddd']
    
    res2 = re.findall("ind?", s1)  # +是匹配(0,1)
    print(res2)  # ['ind']
    
    res3 = re.findall("ind{3}", s1)  # {} 表示匹配的数量
    print(res3)  # ['inddd']

    []用法

    # []作用
    res1 = re.findall("x[yz]", "xyuuuxz")  # x与yz组合匹配
    print(res1)  # ['xy', 'xz']
    
    res2 = re.findall('x[y,z]p', 'xypisispux,pu')
    print(res2)  # ['xyp', 'x,p']
    
    res3 = re.findall('q[a-z]', 'qjksmdqb')  # [a-z]就是p于a到z里面任意一个都可以匹配
    print(res3)  # ['qj', 'qb']
    
    res4 = re.findall('q[0-9]*', 'q988jsjjsjksjkd9')
    print(res4)  # ['q988']
    
    # [^] 非
    
    res1 = re.findall('q[^a-z]*', 'q213')  # ^在[]中就是“非”的意思
    print(res1)  # ['q213']
    
    res2 = re.findall('q[^a-z]*', 'qabc')  # ^在[]中就是“非”的意思
    print(res2)  # ['q'] 没有匹配到

    用法

    # (反斜杠):让有意义的变为无意义,让无意义变为有意义
    '''
    d 匹配任何十进制数;它相当于[0-9]
    D 匹配任何非数字字符;它相当于[^0-9]
    s 匹配任何空白字符;它相当于[	
    fv]
    S 匹配任何非空白字符;它相当于[^	
    fv]
    w 匹配任何字母数字字符;它相当于[a-zA-Z0-9]
    W 匹配任何非字母数字字符;它相当于[0-9]
     匹配一个特殊字符边界,比如空格,&,#等
    '''
    res1 = re.findall('d+', "sada55578dsdsa")
    print(res1)  # ['55578']
    
    res2 = re.findall('D+', "sada55578dsdsa")
    print(res2)  # ['sada', 'dsdsa']
    
    res3 = re.findall('s+', "hellow world")
    print(res3)  # [' ']
    
    res4 = re.findall('S+', "hellow world")
    print(res4)  # ['hellow', 'world']
    
    res5 = re.findall('w+', "dasd-sh11+")
    print(res5)  # ['dasd', 'sh11']
    
    res6 = re.findall('W+', "dasd-sh11+")
    print(res6)  # ['-', '+']
    # 让元字符变得无意义例子
    
    res7 = re.findall('www*baidu', 'www*baidu')
    print(res7)  # ['www*baidu']
    
    # res8 = re.findall('(84', '(84') # 报错
    # print(res8)
    
    res8 = re.findall('(84', '(84')
    print(res8)  # ['(84']

     

  • 相关阅读:
    Swift
    UIWindow 详解及使用场景
    点击状态栏回到顶部的功能失效的解决办法
    iOS
    从经典问题来看 Copy 方法
    从汇编层面深度剖析C++虚函数
    数值的整数次方
    求整数二进制中1的个数
    C++中的位运算总结
    嵌入在C++程序中的extern "C"
  • 原文地址:https://www.cnblogs.com/pyhan/p/12269392.html
Copyright © 2020-2023  润新知