Jmeter中的正则表达式

正则表达式:描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
对于正则表达式,相信很多人都知道或者听说过,但是很多人的第一感觉就是难学,因为看第一眼时,全是一堆各种各样的特殊符号,完全不知所云。
其实只是对正则不了解而以,了解了你就会发现,原来就这样啊。正则所用的相关字符其实不多,也不难记,更不难懂,唯一难的就是组合起来之后,可读性比较差,而且不容易理解。

本文旨在让大家对正则有一个基本的了解,能写得出简单的正则表达式,并在Jmeter中应用,以满足日常测试或性能测试中的需求。

1、必须掌握的正则字符

先简要看下,最常用的字符含义。

"^" :^会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。

"$"  :$会匹配行或字符串的结尾。

"\w":匹配字母,数字,下划线。

例如我要匹配"a2345BCD__TTz" 正则:"\w+"  这里的"+"字符为一个量词指重复的次数。 

"\s":匹配空格。

例如字符 "a b c" 正则:"\w\s\w\s\w"  一个字符后跟一个空格,如有字符间有多个空格直接把"\s" 写成 "\s+" 让空格重复。 

".":匹配除了换行符以外的任何字符。

"[abc]": 字符组,匹配包含括号内元素的字符。

"*":   重复零次或更多(贪婪模式)。

例如"aaaaaaaa" 匹配字符串中所有的a  正则:"a*" 会出到所有的字符"a"。

"+":   重复一次或更多次(懒惰模式)。

例如"aaaaaaaa" 匹配字符串中所有的a;  正则:"a+"会取到字符中所有的a字符,"a+"与"a*"不同在于"+"至少是一次而"*" 可以是0次。

"?":   重复零次或一次。

例如"aaaaaaaa" 匹配字符串中的a 正则 : "a?" 只会匹配一次,也就是结果只是单个字符a。

"{n}":  重复n次。

例如从"aaaaaaaa" 匹配字符串的a 并重复3次 正则:"a{3}" 结果就是取到3个a字符 "aaa"。

"{n,m}":  重复n到m次。

例如正则 "a{3,4}" 将a重复匹配3次或者4次;所以供匹配的字符可以是三个"aaa"也可以是四个"aaaa"正则都可以匹配到。

"{n,}":  重复n次或更多次。

与{n,m}不同之处就在于匹配的次数将没有上限,但至少要重复n次 如 正则"a{3,}" a至少要重复3次。

"*?":   重复任意次,但尽可能少重复。

如 "acbacb" 正则"a.*?b" 只会取到第一个"acb" 原本可以全部取到但加了限定符后,只会匹配尽可能少的字符 ,而"acbacb"最少字符的结果就是"acb"。

"+?":  重复1次或更多次,但尽可能少重复。

与上面一样,只是至少要重复1次。

"??":  重复0次或1次,但尽可能少重复。

如 "aaacb" 正则 "a.??b"只会取到最后的三个字符"acb"。

"{n,m}?":  重复n到m次,但尽可能少重复。

如 "aaaaaaaa"  正则 "a{0,m}" 因为最少是0次所以取到结果为空

 说明:

  (1)引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它。

  (2)正则表达式:

    ():括起来的部分就是要提取的。

    .:匹配任何字符串。

    +:一次或多次。

    ?:不要太贪婪,在找到第一个匹配项后停止。

  (3)模板:$1$表示解析到的第1个值

  (4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0

  (5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值