jmeter之正則表達式講解


(正則表達式)元件功能介紹:

  Apply to:(適用域、適用范圍)

    Main sample and sub-samples:適用范圍為:(主請求和子請求)

    Main sample only:適用范圍為(主請求)

    sub-samples only:適用范圍為(子請求)

 

分三個層次介紹:

1. jmeter正則表達式有什么作用?

2. 正則表達式在哪?

3. 正則表達式怎么用?

 

1. jmeter正則表達式有什么作用?

答:提取請求中返回的數據, 然后獲取的數據放入其它請求中, 作為參數使用。 常用在接口傳參中, 列如獲取token、id等

 

 

2. 正則表達式在哪?

 

 

 

 

 

 

 

3. 正則表達式怎么用?

首先請看下面常用表達式,可以使用提取器來練習

1.\bhi\b : 匹配只有hi的字符,\b代表的位置,第一個\b代表單詞開始的位置,第二個\b代表單詞結束的位置
2.\bhi\b.*\bthis\b : 匹配hi的字符后,中間有任意個字符后,后面是this的字符
3. . : 表示任意字符的元字符
4. *:表示任意數量的元字符
5. \d : 表示任意一個數字
6. \d{2}: 表示任意一個數字出現兩次,相當於\d\d
7. \s : 匹配任意的空白符,包括空格,換行符,制表符(tab),中文全角空格
8. \w : 匹配字母,數字,下划線或漢字
9. \d+ : 匹配一個或更多連續的數字
10. \b\w{2}\b : 匹配剛好有兩個字符的單詞
11. \b : 匹配單詞的開始和結束
12. ^ : 匹配字符串的開始
13. $ : 匹配字符串的結束, 例: ^\d{2,5}$ 表示輸入的數字必須是2位(包含)到5位(包含)之間
14. \ : 轉義字符,如果要查找元字符就需要用轉義字符來完成,比如: deerchao\.net 實際上是deerchao.net
15. 重復次數說明: *是重復0次或多次,+是重復1次或多次,?是重復零次或一次,{n} 是重復n次,{n,}是重復n次到多次,{n,m}是重復n次到m次
16. [] : 括號里的字符會被匹配,比如[ab]匹配a或b字符,[,?]匹配逗號或問號
17. [a-z0-9A-Z] : 相當於匹配\w
18. | : 匹配或規則。比如: \(0\d{2}\)[- ]?\d{8}|\(0\d{3}\)[- ]\d{7}|0\d{2}[- ]?\d{8}|0\d{3}[- ]?\d{7} 這個就是匹配電話號碼的,如:012-562365620536-1234567,(0536)-123456701212345678
19. ():匹配分組,255.134.123.123193.168.1.1 匹配表達式為:
(([01]?\d\d?|25[0-5]|2[0-4]\d)\.){3}([01]?\d\d?|25[0-5]|2[0-4]\d)
20. \W : 匹配任意不是字母,數字,下划線,漢字的字符
21. \S : 匹配任意不是空白符的字符
22. \D : 匹配任意非數字的字符
23. \B : 匹配不是單詞開頭或結尾的位置
24. [^x] : 匹配除了x以外的任意字符
25. [^aeiou] : 匹配除了aeiou以外的任意字符
26. (?<word>\w+) 或(?'word'\w+) 后向引用,用於重復搜索前面某個分組已經匹配的文本,引用時就可以寫成\k<word>。實際上分組0對應整個正則表達式;組號分配過程是從左到右分配兩遍的,第一遍先掃描未命名的分組,第二遍掃描已命名的分組,所以命名分組的組號永遠大於未命名分組的組號的; 可以用(?:exp)來剝奪組號分配的參與權
27. 分組命名的幾種語法: (exp) 匹配exp表達式並將文本匹配的內容自動分配到分組里;
(?<name> exp)匹配exp表達式里的文本內容到name組名下,也可以寫成(?'name'exp); (?:exp)匹配exp表達式里內容,但是不捕獲匹配的文本也不給匹配的文本分配組號;(?=exp)匹配exp前面的位置; (?<=exp)匹配exp后面的位置 ; (?!exp)匹配后面不是exp的位置 ; (?<!exp) 匹配前面不是exp的位置; (?#comment)添加注釋,對正則表達式沒有任何影響;
28. (?=exp)與(?<=exp)為零寬斷言,其中(?=exp)為零寬度正預測先行斷言,(?<=exp)為零寬度正回顧后發斷言。(?=exp)表示自exp斷言表達式出現的位置開始匹配斷言之前的內容,如\b\w+(?=er\b) 源文件為tester,則匹配結果為:test。(?<=exp)表示自exp斷言表達式內容結束后的位置開始匹配后面的內容,如(?<=test)\w+\b 源文件為test, 則匹配結果為:er。

():括起來的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:不要太貪婪,在找到第一個匹配項后停止。

一般這幾個夠用了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM