背景和目的正則表達式
接口測試過程當中不免會遇到因爲有轉義符號正則表達式提取不出來的狀況,根據小夥伴們的分享和參考本身實踐總結了多種狀況測試
參考atom
首先,感謝以下常見轉義字符,感謝提供參考的小夥伴 參考:https://blog.csdn.net/ththcc/article/details/78165774spa
$ 匹配輸入字符串的結尾位置。若是設置了 RegExp 對象的 Multiline 屬性,則 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符自己,請使用 \$。.net
( ) 標記一個子表達式的開始和結束位置。子表達式能夠獲取供之後使用。要匹配這些字符,請使用 和和。xml
* 匹配前面的子表達式零次或屢次。要匹配 * 字符,請使用 \*。對象
+ 匹配前面的子表達式一次或屢次。要匹配 + 字符,請使用 \+。blog
. 匹配除換行符 \n以外的任何單字符。要匹配 .,請使用 \。接口
[ ] 標記一箇中括號表達式的開始。要匹配 [,請使用 \[。字符串
? 匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用 \?。
\ 將下一個字符標記爲或特殊字符、或原義字符、或向後引用、或八進制轉義符。例如, ‘n' 匹配字符 ‘n'。'\n' 匹配換行符。序列 ‘\\' 匹配 「\」,而 ‘\(' 則匹配 「(」。
^ 匹配輸入字符串的開始位置,除非在方括號表達式中使用,此時它表示不接受該字符集合。要匹配 ^ 字符自己,請使用 \^。
{ } 標記限定符表達式的開始。要匹配 {,請使用 \{。
| 指明兩項之間的一個選擇。要匹配 |,請使用 \|。
分析:在有 [ 或 ] 的地方咱們都要使用轉義字符/ 如:/[ 和 /]
狀況1:中括號[]轉義符
問題:須要截取"Org":"[0013]總部配送中心","Id":"1001" 中的 0013字符,如何截取?
解決:經過正則表達式提取,添加斜槓/解決
"Org":"\[(.+?)\]總部配送中心","Id" 和 "Org":"\[(.*?)\]總部配送中心","Id" 兩種方式均可以,截圖以下:
狀況2:響應斷言包含斜槓\ 時須要轉義
一、正常狀況下,響應字符是這樣的
{"Success":true,"ErrorCode":0,"Message":"un-sxcs","Data":{}}
二、有時候會有斜槓的response,此時斷言會報錯,由於沒法識別轉義字符,須要再轉義一次
{"msg":"{\"fail\":0,\"total\\":5000,\"success\":5000}
解決:添加斜槓解決響應斷言失敗問題
{"msg":"{\\"fail\\":0,\\"total\\":5000,\\"success\\":5000}