JMeter使用Apache Jakata ORO软件进行模式匹配。和perl的非常类似。
闲话少说,赶紧看个例子:
假设你要提取的网页中信息为:name=“file” value=“readme.txt”>
而你想提取出: readme.txt.
使用正则表达式就可以实现: name=“file” value="(.+?)">
这个正则表达式的含义是什么呢?
正则表达式指定了字符串应当符合怎样的规则。而圆括号内部分是我们想要要提取的部分,在正则表达式中,普通字符通常需要完全匹配,而用特殊字符(元字符)来表达特定的匹配规则。例如 . 表示匹配任意一个字符,+表示匹配一或更多次,而?表示非贪婪匹配 ,只要找到第一个匹配结果后停止。所以上面的正则表达式表示要匹配 name=“file” value=" 和* *">**之间的长度超过1的字符串。
下面我们赶紧来看看正则表达式中的匹配语法吧。
( 和) 圆括号括着的就是要提取的部分。
例如,字符串aa123bb用正则表达式 aa(.*)bb可以匹配成功,提 取的部分为123
. 匹配任意1个字符。
例如,字符串aa123bb用正则表达式 aa(...)bb可以匹配成功,提取 的部分为123
* 匹配0或更多次。例如,zo* 能匹配z、zo 以及zoo等等。
+ 匹配1或更多次。例如,zo+ 能匹配zo 以及zoo等等。
? 匹配0或更多次; 例如 a(bc)?能匹配a和abc等等
或指明非贪婪匹配,例如成功遇到第一个匹配项就返回
例如:<TD align="center" class=tdc2>0531</TD><TD>aaaa</TD>
正则式tdc2>(.+?)</TD>匹配结果为tdc2>0531</TD>
正则式tdc2>(.+)</TD>匹配结果为tdc2>0531</TD><TD>aaaa</TD>
| 表示或。例如 a|b,表示匹配a或者匹配b
(P|p)ython可以匹配Python或者python
^ 表示行的开头,例如,^a表示必须以字母a开头
$ 表示行的结尾,例如,\d$表示必须以数字结束
\ 转义字符。例如,n 匹配字符。\n 匹配换行符。序列 \\匹配 \,而 \( 则匹配 (。
\d 表示数字.
例如:<TD align="center" class=tdc2>0531</TD><TD>aaaa</TD>
正则式tdc2>(\d+)</TD>的匹配结果为tdc2>0531</TD>
\w 表示数字或者字母。
例如,aa123bb与正则表达式 aa(\w+)bb匹配
{ } 重复。
{n} 表示n个字符
{n,m} 表示n-m个字符
\s 表示空白符
[ ] 表示在中括号范围的任意字符字符集合。[0-9a-z] 表示匹配任一数字或者小写英文字母
欢迎关注我的网易云课程
https://study.163.com/courses-search?keyword=软件测试123#/?ot=5