jmeter正则中常见的转义字符-笔记三
背景和⽬的
接⼝测试过程中难免会遇到由于有转义符号正则表达式提取不出来的情况,根据⼩伙伴们的分享和参考⾃⼰实践总结了多种情况
参考
⾸先,感谢如下常见转义字符,感谢提供参考的⼩伙伴参考:
$ 匹配输⼊字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本⾝,请使⽤ \$。( ) 标记⼀个⼦表达式的开始和结束位置。⼦表达式可以获取供以后使⽤。要匹配这些字符,请使⽤和和。
* 匹配前⾯的⼦表达式零次或多次。要匹配 * 字符,请使⽤ \*。
+ 匹配前⾯的⼦表达式⼀次或多次。要匹配 + 字符,请使⽤ \+。
. 匹配除换⾏符 \n之外的任何单字符。要匹配 .,请使⽤ \。
[ ] 标记⼀个中括号表达式的开始。要匹配 [,请使⽤ \[。
? 匹配前⾯的⼦表达式零次或⼀次,或指明⼀个⾮贪婪限定符。要匹配 ? 字符,请使⽤ \?。
\ 将下⼀个字符标记为或特殊字符、或原义字符、或向后引⽤、或⼋进制转义符。例如, ‘n' 匹配字符 ‘n'。'\n' 匹配换⾏符。序列 ‘\\' 匹配 “\”,⽽ ‘\(' 则匹配 “(”。
字符串截取2个字符之间^ 匹配输⼊字符串的开始位置,除⾮在⽅括号表达式中使⽤,此时它表⽰不接受该字符集合。要匹配 ^ 字符本⾝,请使⽤ \^。
{ } 标记限定符表达式的开始。要匹配 {,请使⽤ \{。
| 指明两项之间的⼀个选择。要匹配 |,请使⽤ \|。
分析:在有 [ 或 ] 的地⽅我们都要使⽤转义字符/ 如:/[ 和 /]
情况1:中括号[]转义符
问题:需要截取"Org":"[0013]总部配送中⼼","Id":"1001" 中的 0013字符,如何截取?
解决:通过正则表达式提取,添加斜杠/解决
"Org":"\[(.+?)\]总部配送中⼼","Id" 和 "Org":"\[(.*?)\]总部配送中⼼","Id" 两种⽅式都可以,截图如下:
情况2:响应断⾔包含斜杠\ 时需要转义
1、正常情况下,响应字符是这样的
{"Success":true,"ErrorCode":0,"Message":"un-sxcs","Data":{}}
2、有时候会有斜杠的response,此时断⾔会报错,因为⽆法识别转义字符,需要再转义⼀次 {"msg":"{\"fail\":0,\"total\\":5000,\"success\":5000}
解决:添加斜杠解决响应断⾔失败问题
{"msg":"{\\"fail\\":0,\\"total\\":5000,\\"success\\":5000}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论