• 2019年5月25日 re模块


    正则表达式  可以做 字符串 模糊匹配.

    普通字符:大多数自负和字母都会和自身匹配

    元字符:.^$*+?{}[]|()

    . 是通配符  除了 换行符 不能代替

    ^ 是只能从开头进行匹配

    $是从结尾开始匹配

    *是匹配0到无穷次

    +是匹配1到无穷次

    ?是匹配0到1次 

    {}是匹配次数自己指定

    *?后面加了一个?代表变成惰性匹配,最小匹配

    []代表 或 作用

    []中c没有特殊符号,eg如果里面有*,那就是个普通*

    在字符集中有特殊功能的符号是  -^

    []中有个^ 代表 非 作用

    代表转义  

    反斜杠后面跟元字符  去除特殊功能 比如.

    反斜杠 后面跟普通字符实现特殊功能

    d  类似于[0-9]  匹配任何十进制数

    D 相当于[^0-9] 匹配非数字字符

    s 匹配任何空白字符 [ fv]

    S 匹配任何非空白字符 [^ fv]

    w 匹配任何字母数字字符 [a-zA-Z0-9]

    W 匹配任何非字母数字字符 [^a-zA-Z0-9]

     匹配一个特殊字符边界  比如 空格,&,#等

    import re
    ret=re.findall('a...x','a123xa122344xa323xxxa')#模糊匹配
    print(ret)
    ret2=re.findall('d+','ab2ra32323aadfa44')#d 寻找数字,进行匹配
    print(ret2)
    ret3=re.findall('^a...x','afadxdfkadl;fakdxx;a')#从开头开始进行匹配
    print(ret3)
    ret4=re.findall('a..x$','akalfjadfa23x')# $是从结尾开始处匹配
    print(ret4)
    ret5=re.findall('d*','afaddddddsasaafdfaddddddaadaddf')
    print(ret5)#*代表0到~无穷次
    ret6=re.findall('alex+','adfadalexxxx4434adfak')#+代表1到无穷次
    print(ret6)
    ret7=re.findall('alex*','adfadfaleadfadfa')#*能代表0所以可以没有x,+就不行
    print(ret7)
    ret8=re.findall('alex?','afalexxxxxxxx')#?将x匹配0~1次,
    print(ret8)
    ret9=re.findall('alex{6}','akldalexxxxxxx')#重复6次
    ret10=re.findall('alex{0,5}','alexxdxx')#重复0到5次
    print(ret9,ret10)
    ret11=re.findall('alex*?','adfadfaleadfadfa')#  *多加了一个?变成惰性匹配,就是代表最小匹配
    print(ret11)

    >>>

    ['a123x', 'a323x']
    ['2', '32323', '44']
    ['afadx']
    ['a23x']
    ['', '', '', 'dddddd', '', '', '', '', '', '', 'd', '', '', 'dddddd', '', '', 'd', '', 'dd', '', '']
    ['alexxxx']
    ['ale']
    ['alex']
    ['alexxxxxx'] ['alexx']

    import re
    ret12=re.findall('x[yz]p','xypadfadfaxzp')#[]代表或作用
    print(ret12)
    ret13=re.findall('q[a-z]','qadfadfqdfadfaeqddaas')#- 代表返回,这里代表26个字母
    print(ret13)
    ret14=re.findall('q[a-z]*','qabcrdd9')# 后面加个*代表a-z 重复0到无穷次
    print(ret14)
    ret15=re.findall('q[^a-z]*','q4444abcrdd9')# d代表的是 非,除了a-z以外
    print(ret15)
    ret16=re.findall('([^()]*)','12+(4-5*(4-2))')#首先用[^]取非的方法,取出括号内不含其他括号的元素然后用*取多个
    print(ret16) # 功能代表转义

    》》》

    ['xyp', 'xzp']
    ['qa', 'qd', 'qd']
    ['qabcrdd']
    ['q4444']
    ['(4-2)']

  • 相关阅读:
    面向对象的JavaScript-009-闭包
    面向对象的JavaScript-007-Function.prototype.bind() 的4种作用
    面向对象的JavaScript-006-Function.prototype.apply()的3种作用
    面向对象的JavaScript-005-Function.prototype.call()的3种作用
    面向对象的JavaScript-004
    面向对象的JavaScript-003
    面向对象的JavaScript-002
    面向对象的JavaScript-001
    IOC容器特性注入第一篇:程序集反射查找
    AWS EC2 在WINDOWS平台使用FSX
  • 原文地址:https://www.cnblogs.com/python1988/p/10923753.html
Copyright © 2020-2023  润新知