zoukankan      html  css  js  c++  java
  • 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)']

  • 相关阅读:
    null in ABAP and nullpointer in Java
    SAP ABAP SM50事务码和Hybris Commerce的线程管理器
    Hybris service layer和SAP CRM WebClient UI架构的横向比较
    SAP ABAP和Linux系统里如何检查网络传输的数据量
    SAP CRM WebClient UI和Hybris的controller是如何被调用的
    SAP CRM和Cloud for Customer订单中的业务伙伴的自动决定机制
    SAP CRM WebClient UI和Hybris CommerceUI tag的渲染逻辑
    SAP BSP和JSP页面里UI元素的ID生成逻辑
    微信jsapi支付
    微信jsapi退款操作
  • 原文地址:https://www.cnblogs.com/python1988/p/10923753.html
Copyright © 2011-2022 走看看