从0开始学正则表达式-基于python
关于正则表达式,当我们了解它就不难,不了解就很难,其实任何事情都是这样,没有人一生下来就啥都会,说白了,每个人都是一个学习了解进步的过程。学习和掌握正则表达式可能并不是太简单,因为它确实是有点像“外星语”。
为什么要用正则表达式市面上很早就有关于正则表达式的专业技术书记,在软件开发、性能测试、自动化测试、测试开发中都可以看到正则表达式优美的舞姿。 对于静态文本内容,因为有提供与预期的搜索结果匹配的确切文本内容,典型的搜索和替换操作已经足够了,但它缺乏灵活性。如果要搜索动态内容,这就变得很困难,而正则表达式能很简洁强大的解决这一相关问题。 总而言之、言而总之,我们使用正则表达式可以很方便的过滤、筛选出需要的特定数据信息。
正则表达式字符串匹配
"^d+$" //非负整数(正整数 + 0) "[x{4e00}-x{9fa5}]+/u //匹配汉字中文 “^d{15}|d{}18$” //身份证号(15位或18位数字) “^((13[0-9])|(15[^4,D])|(18[0,0-9]))d{8}$ // 手机号 "^(-?d+)(.d+)?$" //浮点数 "^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$" //email地址 "(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话号码 ^[-+]?d+(.d+)?$ //值类型正则表达式 正则表达式实例1 token在app登录后,相当于一个凭条,代表了该用户的唯一通行证,放到header里面传递到另外的接口。 ---------接口以及返回的响应数据如下:--------- http://192.168.215.55/user/login.do?phone=13798359580&pwd=123456 调用如下包含正则表达式的汗数,则可以得到token为 p:sid:e3f9ff89eaf74a3ba208aa6ba74d00a44043
------------基于python的函数如下---------- def GetToken(): #取用户登录的token值 global token#定义token全局变量 url ='http://'+HOSTNAME+'/buyer/user/login.do'#接口的url params ={ 'phone': '13798359580', 'pwd': '123456',sans-serif; font-size:16px; max-width:100%!important; word-wrap:break-word!important"> }#参数为登录手机号和密码 request =urllib2.Request(url = url,data = urllib.urlencode(params)) #发送接口请求url和参数 response= urllib2.urlopen(request) #返回响应数据 data =response.read()#返回响应数据 regx ='.*"token":"(.*)","ud"' #正则表达式toekn,左匹配 "token":" 右匹配","ud"' pm =re.search(regx,data)#取token匹配值 token =pm.group(1)#如果匹配到则返回token值 returnFalse 正则表达式实例2 购物提交订单时会生成一个订单编号,那么接口自动化测试时,要根据这个订单编号去进行支付等。这时要动态取值,即用到正则表达式去动态匹配需要的这个订单编号。 http://192.168.215.55/buyer/cart/submit.do?goodsids=20394 1000160_240_1
#预提交订单参数取动态值,订单编号preOrderSN,引用时比如strinfo = re.compile('{preOrderSN}') #-------------------------------。 def preOrderSN(results): global preOrderSN #-预提交订单取值的正则表达式,左匹配"preOrderSN":"右匹配"toHome" regx ='.*"preOrderSN":"(.*)","toHome"' if pm: #------如果匹配到则转换为中文并返回值----------- preOrderSN = pm.group(1).encode('utf-8') return preOrderSN returnFalse (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |