• Python 之Re模块


    re简介

    re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用。

    import re
    # 方式一:
    source_str='python1class'
    # value=re.match('thon\dc',source_str).group()  #从开头开始匹配
    value=re.search('thon\dc',source_str).group() #非开头匹配
    print(value) #打印结果:thon1c
    
    #方式二:
    regexp=re.compile('thon\dc')
    v=regexp.search(source_str).group()
    print(v) #打印结果:thon1c

     re模块函数

    1、findall(pattern,string[,flags=0])

    匹配到字符串中所有符合条件的元素,获取非重复的匹配列表;如果有一个组则以列表形式返回,且每一个匹配均是字符串;如果模型中有多个组,则以列表形式返回,且每一个匹配均是元祖;空的匹配也会包含在结果中.

    2、re.compile(pattern[,flags])

    python代码最终会被编译为字节码,之后才被解释器执行,在模式匹配之前,正在表达式模式必须先被编译成regex对象,预先编译可以提高性能,re.compile()就是用于提供此功能。

    import re
    str='hello lv ll loo'
    regexp=re.compile('l+') #匹配规则,在字符串str中查找t开始的一个或多个l
    result=regexp.findall(str)#查询符合匹配规则的字符串
    print(result)  #打印结果:['ll', 'l', 'll', 'l']

    实战一:re实战截取响应部分

    import re
    import requests
    #实战一:re实战截取响应部分值
    response=requests.get('https://www.baidu.com')
    response.encoding='utf-8'
    body_str=response.text
    
    title_value=re.findall('<title>(.+?)</title>',body_str)[0]
    print(title_value) #结果:百度一下,你就知道

     

    实战二:接口串联实例

    #登录微信公众号开发平台,修改已存在的标签
    #第一步:获取access_token
    get_param_data={
        "grant_type":"client_credential",
        "appid":"wx93fc8716b3795e",
        "secret":"1ff879affa4d6c7cddc27b2e994069"
    }
    response=requests.get('https://api.weixin.qq.com/cgi-bin/token',get_param_data)
    body_str=response.content.decode('utf-8')
    #通过正则表达式制定匹配token的规则,并从返回的正文中查找符合规则的字符串
    token_value=re.findall('"access_token":"(.+?)"',body_str)[0]
    token_value=response.json()['access_token']
    print(token_value)
    
    #第二步:把获取的access_token值传给修改标签接口
    get_param_data={
    'access_token':token_value  #把之前获取的token值传给access_token
    }
    
    post_param_data={"tag": {"id":103,"name":"上海666"}}
    header_info={'Content-Type':'application/json'}  #发送json数据必带的头部信息
    
    response=requests.post(url='https://api.weixin.qq.com/cgi-bin/tags/update',
                           params=get_param_data,
                           # data=json.dumps(post_param_data),
                           json=post_param_data,
                           headers=header_info
                           )
    print(response.content.decode('utf-8'))  #结果:{"errcode":0,"errmsg":"ok"}
    
    
    
     
  • 相关阅读:
    C#中关于zip压缩解压帮助类的封装(转)
    MonoTouch的官网
    Android布局
    VS2010网站发布
    HTML5的PLACEHOLDER属性
    some np problem
    srm 578
    opencv 边缘算子
    Python扩展(pybind11混编)
    PyTorch之初级使用
  • 原文地址:https://www.cnblogs.com/lvhuayan/p/14920786.html
Copyright © 2020-2023  润新知