• 使用正则表达式的技巧


    import re
    
    # 从"1-2*(60+(-40.35/5)-(-4*3))"中取整数
    ret=re.findall(r"d+","1-2*(60+(-40.35/5)-(-4*3))")
    print(ret) #['1', '2', '60', '40', '35', '5', '4', '3'] 把40.35当成两个数了
    # 你要匹配的内容太没有特点了 容易和你不想匹配的内容混在一起
    
    
    ret= re.findall(r"d+.d+|d+","1-2*(60+(-40.35/5)-(-4*3))")
    print(ret)#['1', '2', '60', '40.35', '5', '4', '3'] 已经把小数问题解决了,但是还是不对
    
    
    ret= re.findall(r"d+.d+|(d+)","1-2*(60+(-40.35/5)-(-4*3))")
    print(ret) #['1', '2', '60','', '5', '4', '3']
    # 通过优先显示已经把小数过滤掉了,但是为什么会有空字符串呢,可以把|两边都加上括号看下
    
    
    ret= re.findall(r"(d+.d+)|(d+)","1-2*(60+(-40.35/5)-(-4*3))")
    print(ret)#[('', '1'), ('', '2'), ('', '60'), ('40.35', ''), ('', '5'), ('', '4'), ('', '3')]
    # 元组里左边显示的是小数,右边显示的是整数.
    # 现在可以把上一个再优化一下
    
    
    ret= re.findall(r"d+.d+|(d+)","1-2*(60+(-40.35/5)-(-4*3))")
    print(ret) #['1', '2', '60', '', '5', '4', '3']
    ret.remove("") #把空字符串去掉
    print(ret) #['1', '2', '60', '5', '4', '3']
    # 这回就拿到了所有的整数了
  • 相关阅读:
    Dubbo简介
    Centos之关机和重启命令
    VirtualBox中CentOS7.2 网络配置(固定IP+联网)
    c#Post方法封装处理
    C# 异步方法处理
    将XMLrequest 改写成fetch
    AsyncCallback
    Promise
    FETCH
    HTML DOM Event 对象
  • 原文地址:https://www.cnblogs.com/kenD/p/9494303.html
Copyright © 2020-2023  润新知