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