Jmeter正则表达式
正则表达式:搜索或检索一个字符串里面的数据
1.内容表示:
(1)[]
[1234]表示一个不连续数1或2或3或4,通俗的讲就是一个中括号代表提取一个数据,[1234]只能在1,2,3,4中选一个
[0-9]表示一个连续数0或1或2或3或4或5或6或7或8或9,通俗的讲就是一个中括号代表提取一个数据,[0-9]可以在0,1,2,3,4,5,6,7,8,9选一个
举例:abcd123abc1234
a.提取数据:[123]
结果:1 2 3 1 2 3 一共6个结果
b.提取数据:[0-9]
结果:1 2 3 1 2 3 4 一共7个结果
c.提取数据:[abc][0-9][0-9][0-9]
结果:d123 c123 一共2个结果
d.提取数据:[abc][0-9][12][123][4]
结果:c1234 一共1个结果
(2).
英文句号点(.)表示任意字符
举例:abcd123abc1234
a.提取数据:[123].[3][abcd]b
结果:123ab 一共1个结果
2.数量的表示:
(1){}
花括号里面的数字表示数量
举例:abcd123abc1234
a.提取数据:[123]{2}
结果:12 12 一共2个结果
b.提取数据:[123]{2}[abc]{2}c
结果:23abc 一共1个结果
c.提取数据:[123].{3}[bc]1
结果:23abc1 一共1个结果
(2)+
加号表示一个或者多个
举例:abcd123abc1234
a.提取数据:[ab][abcd].+[12]+
结果:abcd123abc12 一共1个结果
b.提取数据:[123]+[abc]
结果:123a 一共1个结果
(3)*
星号表示0个1个或多个
举例:abcd123abc1234
a.提取数据:[123]*[abc]
结果:a b c 123a b c 一共6个结果
(4)无
无具体表示的数量形式数量默认为1
3.贪婪匹配:
举例:abcd123abc1234
a.提取数据:[abcd]{3}.*?c
b.提取数据:[abcd]{3}.*c
a提取结果:abc abc 一共2个结果
b提取结果:abcd123abc 一共1个结果
可以明显看到加了贪婪匹配的和没有加的出现了不同,问题就出在*在表示0个1个或多个的时候遵循的原则是就长不就短,
所以当有几个结果的时候它选择了最长的,贪婪匹配会改变它的规则直接选择最短的结果。