zoukankan      html  css  js  c++  java
  • python re模块

    正则表达式 本身具有处理字符串的能力
    如果 要处理的字符串 存在python 的内存里

    模块 ->操作正则表达式

    import re
    ret = re.findall("d+","sfsafasf3ww33)
    print(ret)
    一次性返回所有匹配到的项 直接存在列表中
    
    
    ret = re.search("d+","alfjalkjfalj3")
    print("d+","wegwere2")
    if ret:
        
        print(ret.group())
    
    一次性只匹配一个符合条件的表达式,以对象的形式返回,通过对象.group()取实际值
    如果没有匹配到 会返回none 调用group会报错


    ret = re.match('d+','adfafa8ada32')
    print(ret) #获取到的是对象
    match的好处是取值的时候有值则取值即可,无值则是None,用于判断方便些

    findall和分组的问题

    import re
    ret = re.findall("d+(?:.d+)?","1.234+4.3")
    ?:写在一个分组的最开始,表示在faidall方法中取消这个分分组的优先级
    print(ret)
    ret= re.search('d+(.d+)?','1.2345+4.3')
    print(ret.group)
    

    aa|bb.split("|")

    split中如果带有分组,会在分割的同时保留被分割内容中带分组的部分

    ret = re.split("(dd)","afafa34")
    print(ret)
    ret = re.sub("(dd)","afafa34",2)
    print(ret)
    ret = re.subn("(dd)","afafa34")
    print(ret)
    

     节省时间complie

    obj = re.complie("d{3}")将正则表达式编译成一个 正则表达式的对象规则要匹配的对象是三个
    print(obj)
    ret = obj.search('adafa123eeee') 正则节省时间表达式式对调用search,猜数为待匹配的字符串
    print(ret.group())
    

     迭代功能的 节省空间 finditer

    ret = re.finditer("d+","slfla123")
    print(ret)
    for i  in ret :
      print(i.group)
    

    # 基础查找 findall(分组优先显示) search match
    # 替换分割 split(分组保留) sub subn
    # 代码优化 compile finditer

    分组命名
    # html标签语言
    # html是一种代码
    # 对于浏览器来说 浏览器和代码之间有一种约定
    # 写在一个标识符之内的代码 可以有一种独立的格式
    # 标识符
    # <h1>sgjkagjgdjkf</h1> 

    给分组起名字?P<a>正则表达式,使用分组的名字(?P=a)

    # ret = re.search('<(?P<tag>w+?)>w+</(?P=tag)>',"<b>hello</b>")
    # print(ret.group())
    # print(ret.group('tag'))
    

      

    根据分组的索引使用分组 1,1是分组的索引值
    # ret = re.search(r'<(w+?)>w+</1>',"<b>hello</b>")
    # print(ret.group())
    # print(ret.group(1))
    
    # ret = re.search(r"<(w+)>w+</1>","<h1>hello</h1>")
    # ret.group(1)
    
    # ret = re.finditer(r'<(w+?)>w+</1>',"<b>hesakdfkhfkllo</b>")
    # for i in ret:
    #     print(i.group(1))
    #     print(i.group())
    

     问号的作用

    # ?
    # 量词惰性匹配取消分组优先分组命名
    
    # ret=re.findall(r"d+.d+|(d+)","1-2*(60+(-40.35/5)-(-4*3))")
    # while '' in ret:
    #     ret.remove('')
    # print(ret)
    

      

     

     

     

      

      

  • 相关阅读:
    win7下php7.1运行getenv('REMOTE_ADDR')fastcgi停止运行
    Laravel 单设备登录
    CGI与FastCGI
    一起谈.NET技术,c#数据库存取图片的三种方式 狼人:
    一起谈.NET技术,ASP.NET的状态管理 狼人:
    一起谈.NET技术,Visual Studio 2010层架构验证的实现 狼人:
    一起谈.NET技术,4.0中的并行计算和多线程详解(二) 狼人:
    一起谈.NET技术,利用Visual Studio 2010流程模板实现Scrum敏捷开发 狼人:
    一起谈.NET技术,ASP.NET 安全漏洞临时解决方案 狼人:
    一起谈.NET技术,初识Silverlight 4及其架构 狼人:
  • 原文地址:https://www.cnblogs.com/lnrick/p/9309871.html
Copyright © 2011-2022 走看看