日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式不包含某个字符串_JMeter必知必会系列(18) JMeter正则表达式提取器疑难分析...

發(fā)布時間:2024/4/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式不包含某个字符串_JMeter必知必会系列(18) JMeter正则表达式提取器疑难分析... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JMeter正則表達(dá)式提取器疑難分析

前沿

JMeter正則表達(dá)式提取器的配置項中, Regular Expression, Template與 Match No.這三個配置項是比較難以理解的,本文針對這三個配置項設(shè)置進(jìn)行深入分析,以便大家能夠游刃有余的使用其功能.

1 JMeter使用的正則表達(dá)式

JMeter包含模式匹配工具Apache Jakarta ORO,對應(yīng)的jar包在JMeter安裝目錄下的liboro-2.0.8.jar.

Jakarta項目是在Apache軟件基金會營運的開放源代碼開發(fā)項目之一.開發(fā)著面向?qū)ο缶幊陶Z言Java的程序庫,框架等.其中的ORO是一組用于處理文本的Java類庫,提供了與Perl5兼容的正則表達(dá)式功能.

2 正則表達(dá)式提取器中的Regular Expression

該配置項填寫提取響應(yīng)數(shù)據(jù)的正則表達(dá)式.

JMeter匹配文本時可以選擇不分組捕獲與分組捕獲兩種方式.

2.1 不分組捕獲

當(dāng)Template配置相中填寫的是$0$時, Regular Expression配置項中可以沒有(),表示不分組,返回整個匹配項.

如圖所示:

2.2 分組捕獲

當(dāng)使用分組捕獲時,Regular Expression配置項中則必須至少包含一組(),用以捕獲一個或多個字符串.

一組()稱為一個捕獲組,并且捕獲組可以嵌套.

每個捕獲組都有一個編號與之對應(yīng),以方便引用捕獲組匹配的內(nèi)容.若有多個捕獲組,編號規(guī)則為:

按照"("從左至右出現(xiàn)的先后順序,從1開始依次遞增進(jìn)行編號: 1,2,3, ... ,n

還有一個額外編號為0的捕獲組,用于表示匹配到的整個正則表達(dá)式字符串.

比如:

正則表達(dá)式: ((d{4})-(d{2})-(d{2}))s((d{2}):(d{2}):(d{2}))

捕獲組編號: 1 2 3 4 5 6 7 8

響應(yīng)文本: Today is 2019-06-25 14:29:30,Tuesday

匹配后各捕獲組對應(yīng)的內(nèi)容如下:

g1:2019-06-25

g2:2019

g3:06

g4:25

g5:14:29:30

g6:14

g7:29

g8:30

g0:2019-06-25 14:29:30

3 正則表達(dá)式提取器中的Template

Template用以設(shè)置捕獲到的字符串以怎樣的格式保存到JMeter變量中.

可以原樣保存,也可以格式化保存,下面討論這兩種情況.

3.1 原樣保存捕獲組字符串

在此項中,可以用$1$表示引用捕獲組1中的內(nèi)容,$2$表示引用捕獲組2中的內(nèi)容, ... ,$n$表示引用捕獲組n中的內(nèi)容,$0$表示引用正則表達(dá)式匹配后的整個字符串.

3.2 格式化保存捕獲組字符串

除了使用$n$引用捕獲組的內(nèi)容外,還可以加入需要的字符,將匹配的內(nèi)容按照某種格式保存.

4 正則表達(dá)式提取器中的Match No.

當(dāng)正則表達(dá)式的捕獲組匹配到多個滿足條件的字符串時,會按照捕獲的先后順序依次對其進(jìn)行編號:1,2,3,...,n

可以使用編號來選擇需要的字符串,1表示第一個匹配的字符串,2表示第二個匹配的字符串,...,依次類推.

可以根據(jù)實際需要從中選擇某個匹配項,所有匹配項或隨機(jī)選擇某個匹配項.

4.1 選擇某個匹配項

設(shè)置Match No.為i(i=1,2,3,...,n),i不能超過匹配的最大次數(shù).

比如,設(shè)置為2,表示取捕獲組獲取的第二個匹配項.

為了方便引用捕獲的內(nèi)容,JMeter提供了豐富的變量,可以根據(jù)實際情況選擇所需的變量.

假設(shè):

"Name of created variable"設(shè)置為refName

"Match No."設(shè)置為i

捕獲組的個數(shù)為m

各變量的具體含義如下:

refName: 按照"Template"設(shè)置保存的模板值;

refName_g: 捕獲組的個數(shù)

refName_g0: 正則表達(dá)式的值

refName_gN: 捕獲組N的第i個匹配項(N=1,2,3,...,m)

舉例說明:

4.2 選擇所有匹配項

設(shè)置Match No.為-I(I=1,2,3,...).

JMeter只要檢測到是負(fù)整數(shù)時則輸出所有匹配項.

假設(shè):

"Name of created variable"設(shè)置為refName

"Match No."設(shè)置為-I

捕獲組的個數(shù)為m

捕獲組匹配項的個數(shù)為n

各變量的具體含義如下:

refName: 在此種情況下始終顯示為默認(rèn)值(Default Value設(shè)置的值)

refName_i: 捕獲組第i個匹配項對應(yīng)的模板值(i=1,2,3,...,n)

refName_i_g: 捕獲組第i個匹配項個數(shù)(i=1,2,3,...,n)

refName_i_g0: 捕獲組取第i個匹配項時正則表達(dá)式的值(i=1,2,3,...,n)

refName_i_gj: 捕獲組j(j=1,2,3,...,m)的第i(i=1,2,3,...,n)個匹配項

下面是一個例子:

4.3 隨機(jī)選擇某個匹配項

設(shè)置Match No.為0

此種情況下,各變量的具體含義與"4.1 選擇某個匹配項"相同,不再說明.

總結(jié)

以上是生活随笔為你收集整理的正则表达式不包含某个字符串_JMeter必知必会系列(18) JMeter正则表达式提取器疑难分析...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。