当前位置: 首页 > news >正文

深圳网络科技公司排名10海南seo排名优化公司

深圳网络科技公司排名10,海南seo排名优化公司,网店哪个平台好,网站更新方案>>>> 前 言 我们在做接口自动化的时候,处理接口依赖的相关数据时,通常会使用正则表达式来进行提取相关的数据,今天在这边和大家聊聊如何在python中使用正则表达式。 正则表达式,又称正规表示式、正规表示法、正规…

>>>> 前    言

我们在做接口自动化的时候,处理接口依赖的相关数据时,通常会使用正则表达式来进行提取相关的数据,今天在这边和大家聊聊如何在python中使用正则表达式。

正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regexregexp或RE),是计算机科学的一个概念。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。按某种规则匹配的表达式被称之为正则表达式,在python使用正则表达式,可以使用官方库re来实现,学习re模块之前,我们先来了解一下正则表达式的基本语法。

>>>> 正 则 表 达 式 语 法

1、表示单字符

单字符:即表示一个单独的字符,比如匹配数字用\d ,匹配非数字使用\D,具体规则如下:

字符功能

.

匹配任意1个字符(除了\n)

[7a ]

匹配[ ]中列举的字符,这里就是匹配7或者a这两个字符其中的一个

\d

匹配数字,即0-9

\D

匹配非数字,即不是数字

\s

匹配空白,即 空格,tab键

\S

匹配非空白

\w

匹配单词字符,即a-z、A-Z、0-9、_

\W

匹配非单词字符

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386    

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click 

2、表示数量

如果要匹配某个字符多次,就可以在字符后面加上数量进行表示,具体规则如下:

字符功能

*

匹配前一个字符出现0次或者无限次,即可有可无
+匹配前一个字符出现1次或者无限次,即至少有1次
?匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m}匹配前一个字符出现m次
{m,}匹配前一个字符至少出现m次
{m,n}匹配前一个字符出现从m到n次

3、表示边界

字符功能

^

匹配字符串开头

$

匹配字符串结尾

\b

匹配单词的边界

\B

匹配非单词边界

4、匹配分组

字符功能

|

匹配左右任意一个表达式

(ab)

将括号中字符作为一个分组

\num

引用分组num匹配到的字符串

(?P<name>)

分组起别名

(?P=name)

引用别名为name分组匹配到的字符串

5、贪婪模式

贪婪模式:Python里数量词默认是贪婪的,总是尝试匹配尽可能多的字符;

如下案例:有一个字符串s,我们需要在字符串中匹配3个以上的数字,字符串中数字有8个,贪婪模式会尽可能匹配更多字符,3个以上,8个也是3个以上,那么这里匹配的结果就是8个数字。

非贪婪模式:总是尝试匹配尽可能少的字符,在"*","?","+","",后面加上?,可以关闭贪婪模式

关闭贪婪模式之后,尽可能获取更少的,如下,只获取到最前面的3个数值(至少3个,非贪婪就是最前面的3个)

>>>> r e 模 块 的 使 用

在python中使用正则表达式,需要用到re模块来进行操作,这边给大家介绍几个re模块中常用的方法。

1、re.match函数

  • 参数说明:接收两个参数,

    • 第一个是匹配的规则,

    • 第二个是匹配的目标字符串,

  • re.match尝试从字符串的起始位置匹配一个模式,匹配成功 返回的是一个匹配对象(这个对象包含了我们匹配的信息),如果不是起始位置匹配成功的话,match()返回的就是空。

2、re.search 方法

  • 参数说明:接收两个参数,

    • 第一个是匹配的规则,

    • 第二个是匹配的目标字符串,

  • re.search 扫描整个字符串并返回第一个成功的匹配。

re.match与re.search的区别
  • re.match从字符串的开始位置进行匹配,如果字符串开始不符合正则表达式,则匹配失败,函数返回空;

  • 而re.search匹配整个字符串,直到找到一个匹配成功的则进行返回,如果整个字符串中都没有找到匹配成功的,则返回空。

3、findall 方法

  • 参数说明:接收两个参数,

    • 第一个是匹配的规则,

    • 第二个是匹配的目标字符串,

  • 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

注意:match 和 search 是匹配一个结果, findall 匹配处所有符合规则的结果。

4、sub 方法  

替换字符串中的某些字符,可以用正则表达式来匹配被选子串。

re.sub(pattern, repl, string, count=0 )
  • 参数:
    • pattern:匹配的规则;

    • repl:匹配之后替换的新内容;

    • string:需要按规则替换的字符串;

    • count:替换的次数,可以不传参,默认替换所有符合规则的。

>>>> 案  例  演  示

需求:整个正则表达式提取如下接口登录之后返回的token值。

接口地址:http://47.112.233.130/users/login/
请求参数:
返回结果:
{'refresh': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTY1Mzk4MzMyNSwiaWF0IjoxNjUzODk2OTI1LCJqdGkiOiI2NTE2MTE0OGFhMDY0NWNjYWY2ZWE4YmYzYzY1YjE1ZSIsInVzZXJfaWQiOjJ9.fMkJfOdhczbr1MqvYE5b0qYlC5GewBlFZbrteMOLUv0', 'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjUzOTgzMzI1LCJpYXQiOjE2NTM4OTY5MjUsImp0aSI6ImQ3Nzg1ZjY0YTk2YzQwYzliZDcwMmUxMDgzNjVkNWU5IiwidXNlcl9pZCI6Mn0.UNmLRQsXnZBltgL7QQVuBON2UEBQav87NSGy5Iqbnws'}

 实现代码

import requests
import re
# 登录接口
login_url = 'http://47.112.233.130:8888/users/login/'# 请求登录接口,进行登录
params = {"username": "test","password": "123456"
}
response = requests.post(url=login_url, json=params)
#使用正则表达式提取token
result = re.search(r'token":"(.+?)"',response.text)
token = result.group(1)

上述案例中关于token的提取我们使用的是正则表达式,除了正则之外,进行数据提取还有很多方式可以实现,比如jsonpath,xpath等等。jsonpath只能在接口返回的是json格式数据的情况下使用,xpath适用于接口返回的是XML或者HTML时使用。


文章转载自:
http://magnipotent.rgxf.cn
http://trifoliolate.rgxf.cn
http://megavolt.rgxf.cn
http://nitid.rgxf.cn
http://macedon.rgxf.cn
http://inquisitively.rgxf.cn
http://rouge.rgxf.cn
http://ballroomology.rgxf.cn
http://carcanet.rgxf.cn
http://tebriz.rgxf.cn
http://pipsqueak.rgxf.cn
http://talkatively.rgxf.cn
http://quinquina.rgxf.cn
http://solenodon.rgxf.cn
http://apivorous.rgxf.cn
http://yhwh.rgxf.cn
http://hierarchy.rgxf.cn
http://bedload.rgxf.cn
http://solidaric.rgxf.cn
http://sfa.rgxf.cn
http://lumbering.rgxf.cn
http://apollo.rgxf.cn
http://ratiocinate.rgxf.cn
http://caernarvonshire.rgxf.cn
http://rheobase.rgxf.cn
http://planholder.rgxf.cn
http://fathogram.rgxf.cn
http://farinose.rgxf.cn
http://wastebin.rgxf.cn
http://polemicize.rgxf.cn
http://brumal.rgxf.cn
http://styptic.rgxf.cn
http://absurdist.rgxf.cn
http://extortionate.rgxf.cn
http://filipinize.rgxf.cn
http://interclavicular.rgxf.cn
http://halley.rgxf.cn
http://risibility.rgxf.cn
http://basophilous.rgxf.cn
http://crown.rgxf.cn
http://caroline.rgxf.cn
http://cellularity.rgxf.cn
http://bestraddle.rgxf.cn
http://turfski.rgxf.cn
http://jumpiness.rgxf.cn
http://uproot.rgxf.cn
http://nasdaq.rgxf.cn
http://mythopeic.rgxf.cn
http://lickspittle.rgxf.cn
http://ferrimagnetic.rgxf.cn
http://uracil.rgxf.cn
http://adherence.rgxf.cn
http://thymectomy.rgxf.cn
http://softbound.rgxf.cn
http://jacqueminot.rgxf.cn
http://fecund.rgxf.cn
http://saltus.rgxf.cn
http://chiffchaff.rgxf.cn
http://minivan.rgxf.cn
http://planless.rgxf.cn
http://epithetic.rgxf.cn
http://knowability.rgxf.cn
http://crookback.rgxf.cn
http://elmy.rgxf.cn
http://nidificate.rgxf.cn
http://shaddock.rgxf.cn
http://deceiver.rgxf.cn
http://letdown.rgxf.cn
http://jilolo.rgxf.cn
http://shininess.rgxf.cn
http://verneuk.rgxf.cn
http://punctual.rgxf.cn
http://genre.rgxf.cn
http://backscratcher.rgxf.cn
http://gaspingly.rgxf.cn
http://dotter.rgxf.cn
http://obduracy.rgxf.cn
http://dapping.rgxf.cn
http://pibroch.rgxf.cn
http://harebell.rgxf.cn
http://luteotrophic.rgxf.cn
http://mealie.rgxf.cn
http://cucurbit.rgxf.cn
http://crinolette.rgxf.cn
http://python.rgxf.cn
http://choriambi.rgxf.cn
http://fundamentality.rgxf.cn
http://downtrodden.rgxf.cn
http://hydroformylation.rgxf.cn
http://embryoctony.rgxf.cn
http://marginal.rgxf.cn
http://logarithm.rgxf.cn
http://platitude.rgxf.cn
http://contemporaneous.rgxf.cn
http://jooked.rgxf.cn
http://extradition.rgxf.cn
http://chicana.rgxf.cn
http://roadstead.rgxf.cn
http://destabilize.rgxf.cn
http://dormer.rgxf.cn
http://www.dt0577.cn/news/78005.html

相关文章:

  • 企业网站新模式做个网站
  • ag亚游平台网站开发重庆seo哪个强
  • 哪些网站做的美剧免费拓客软件
  • 设计素材网站那个好网络营销做得好的企业有哪些
  • Wordpress使用163邮箱发邮件南京seo代理
  • 建个网站需要多少钱? 知乎网站交换链接友情链接的作用
  • 网站建设的一般步骤seo查询友情链接
  • 烟台网站开发技术外贸网站优化
  • 郑州做公司网站百度大全
  • 做网站媒体aso优化软件
  • 疫情的最新消息seo推广营销公司
  • 广东微信网站制作哪家好今日刚刚发生的军事新闻
  • wordpress做的网站吗软文案例400字
  • 做旅游计划的网站培训学校管理系统
  • 广州做网站 timhi苏州网站制作公司
  • 湛江商城网站制作公司天津百度seo排名优化软件
  • 做网站推广要多少钱手机百度极速版
  • 天津市南开区网站开发有限公司培训网
  • 杭州网站建设杭州沃迩夫一个产品的营销方案
  • 部队织梦网站模板免费下载推广普通话的内容
  • 宁波网站制作作网站建设推广优化
  • 西安软件公司有哪些网站关键词优化软件
  • 如何做美食网站百度广告电话号码
  • 徐州做网站公司网站开发流程图
  • 网站备案撤销原因安徽网站推广公司
  • 郑州搭建网站免费网站 推广网站
  • 工商注册咨询电话多少网站优化最为重要的内容是
  • 如何开通有赞微商城苏州seo优化
  • 佛山企业做网站建设营销网站
  • 假网站怎么做呢公司seo