正则表达式卷子
正则表达式非常重要, 如果不懂正则表达式,JMeter中的正则表达式提取器做不下去。
简单的正则表达式讲解
例题: 原文本如下:
href="/norder/orderdetail?orderCode=88202104282409412" target="_blank">订单详情</a></span>
写一个正则表达式, 提取订单号。
肖佳老师解释:要提取订单号,需要找到前面的参照物和后面的参照物。
第1步:找到前后参照物。
如下:orderCode=88202104282409412" 前后参照物永远不变。
第2步:把要提取的东西,换成(.*?) 最终的正则表达式就是:orderCode=(.*?)"
前后参照物不需要找太长。 比如,前面的参照物。
不应该找 detail?orderCode= 找 orderCode= 就可以了。
后面的参照物,不需要找 " target="_blank 只需要找 " 就可以了。
正则表达式测试器
任何正则表达式,都应该通过测试后,才能使用。
这个正则表达式可以从群文件中下载。
注意: 不要选中下图中的 “替换”
作业: 把之前的正则表达式字符串。 测试下。
.*? 代表什么意思
. 替代任何字符
*? 重复任意次,但尽可能少重复。
.*? 意思是替代任何字符,重复任意次
括号代表什么意思。 括号代表分组
简单的正则表达式的练习
因为你们是初学者,建议大家按我的思路,分步来做。
分步做不会做错。
问题:
原文本:
<a
href="/order/detail?orderid=11441389871">11441389871</a>
写一个正则表达式, 提取订单号。
第1步:找到前参照物和后参照物。 答案:
第2步:把要提取的东西换成(.*?) 答案:
问题:
原文本如下
<a href="//pfk.360kad.com/" target="_blank">皮肤科</a></dd>
写一个正则表达式, 提取 “皮肤科“”。
第1步:找到前参照物和后参照物。 答案:
第2步:把要提取的东西换成(.*?) 答案:
问题:
原文本如下
<p class="price-vip" style="font-family:微软雅黑">会员价:<b>¥2.50</b></p>
写一个正则表达式, 提取 “2.50”。
第1步:找到前参照物和后参照物。 答案:
第2步:把要提取的东西换成(.*?) 答案:
提取token字符串
{
"txtUserName":"tankxiao",
"token ":"adfdf343sdfdsfdsf234324324sdfsfdsfdsfsadfasdf12345678"
}
写一个正则表达式, 提取 token字符串,先搞清楚哪个是token字符串。(有颜色的是token字符串)
第1步:找到前参照物和后参照物。 答案:
第2步:把要提取的东西换成(.*?) 答案:
转义的正则表达式
有一些特殊字符,需要转义。
转义, 明确的告诉服务器,我是一个普通字符。在需要转义的字符前面加\
\( 告诉服务器我是一个普通字符,我就是一个普通的(
例题:原文本
onclick="Edit(11683092711) ">
提取其中的ID
肖佳老师分析: 做这种转义的正则表达式一定需要分3步走。
第1步:找到前后参照物 Edit(11683092711) "
第2步:把需要转义的字符,前面加\。括号是特殊字符,需要转义。Edit\(11683092711\) "
第3步:把要提取的东西 改为 (.*?) Edit\((.*?)\) "
问题:原文本
onclick="Edi?t((11683092711)) ">
第1步:找到前后参照物
答案:
第2步:把需要转义的字符,前面加\。括号是特殊字符,需要转义。问号也需要转义
答案:
第3步:把要提取的东西 改为 (.*?)
问题:原文本:
onclick="$('#h_FavoriteId').val('112677811');confirmPop('是否取消收藏!
第1步:找到前后参照物
答案:
第2步:把需要转义的字符,前面加\。括号是特殊字符,需要转义。问号也需要转义
答案:
第3步:把要提取的东西 改为 (.*?)
问题
原文本, 需要提取3250
<p class="Yjifen" id="integral_count">3250</p>
第1步:找到前后参照物
答案:
第2步:把需要转义的字符,前面加\。括号是特殊字符,需要转义。问号也需要转义
答案:
第3步:把要提取的东西 改为 (.*?)
哪些字符需要转义
小括号
问号
点
都需要转义。
如果提取不出来,说明就需要转义。