1,什么是正则表达式
正则表达式是一种用于匹配字符串模式的工具。通过使用特定的语法规则,可以在文本中搜索替换、提取符合特定模式的文本。
2,正则表达式中的基本语法
特别字符 | 描述 |
---|---|
. | 匹配任意单个字符,除了换行符\n。要匹配. 使用 \. 。 |
* | 匹配前面的字符零次或多次。要匹配*字符,请使用*。【量词】 |
+ | 匹配前面的子表达式一次或多次。要匹配+字符,请使用+。【量词】 |
? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配?字符,请使用\?。【量词】 |
\ | 转义字符,用于匹配特殊字符;将下一个字符标记为特殊字符、或原义字符、或向后引用、或八进制转义符。例如,'n' 匹配字符'n'。"\n' 匹配换行符。序列"\\' 匹配“\“,而'\(' 则匹配"("。 |
[ ] | 字符类,匹配括号中任意一个字符;标记一个中括号表达式的开始。要匹配[,请使用\[。 |
() | 分组,用于限定表达式的作用范围。标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用 |
{} | 标记限定符表达式的开始。 |
$ | 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则$也匹配 '\n' 或 '\r'。 |
^ | 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。 |
| | 指明两项之间的一个选择 |
\d数字字符匹配。等效于 [0-9]。
一个符合要求的正则表达式:name ="file" value ="(.+?)">。
():封装了待返回的匹配字符串。
.:匹配任何字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止
3,Jmeter中使用正则表达式匹配
步骤:
step1 在线程组------》添加------》后置处理器-------里面添加一个“正则表达式提取器”:
Step2 正则提取器(后置处理器-正则提取器)
如果没有匹配到,缺省值就会显示个默认值;
案例一:
1.需要关联的内容:
"token":"ZOqSHlyla2vOfSIeKmrlncq3712WrWtzUfMGZAK3wadDj0BrvnR77B3fbmrNUUV0xRU/jxaEwo/fQbjJJq9BrA==",
2. 响应数据里面找到token的左右边界值,引用名称: token ,
3.正则表达式:
"token":"(.+?)", 模板:$1$,匹配数字:1
案例二:
1.需要关联的内容:只能是字母和数字组成的
"token":"ZOqSHlyla2vOfSIeKmrlncq3712WrWtzUfMGZAK3wadDj0BrvnR77B3fbmrNUUV0xRUWjxaEwoifQbjJJq9BrAYF",
2. 响应数据里面找到token的左右边界值,引用名称: token ,
3.正则表达式:"token":"([A-Za-z0-9]{1,89} )" 模板:$1$,匹配数字:1
案例三:
1.需要关联的内容:
"mobile":"15900000000",
2. 响应数据里面找到mobile的左右边界值,引用名称: mobile ,
3.正则表达式:"mobile":"(\d.{1,11})"或者“mobile”:“(\d.+?) "
,模板:$1$,匹配数字:1
案例四:
在请求下面添加—>后置处理器—> JSON 提取器来获取变量值