背景和目的
接口測試過程中難免會遇到由於有轉義符號正則表達式提取不出來的情況,根據小伙伴們的分享和參考自己實踐總結了多種情況
參考
首先,感謝如下常見轉義字符,感謝提供參考的小伙伴 參考:https://blog.csdn.net/ththcc/article/details/78165774
$ 匹配輸入字符串的結尾位置。如果設置了 RegExp 對象的 Multiline 屬性,則 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本身,請使用 \$。
( ) 標記一個子表達式的開始和結束位置。子表達式可以獲取供以后使用。要匹配這些字符,請使用 和和。
* 匹配前面的子表達式零次或多次。要匹配 * 字符,請使用 \*。
+ 匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 \+。
. 匹配除換行符 \n之外的任何單字符。要匹配 .,請使用 \。
[ ] 標記一個中括號表達式的開始。要匹配 [,請使用 \[。
? 匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用 \?。
\ 將下一個字符標記為或特殊字符、或原義字符、或向后引用、或八進制轉義符。例如, ‘n' 匹配字符 ‘n'。'\n' 匹配換行符。序列 ‘\\' 匹配 “\”,而 ‘\(' 則匹配 “(”。
^ 匹配輸入字符串的開始位置,除非在方括號表達式中使用,此時它表示不接受該字符集合。要匹配 ^ 字符本身,請使用 \^。
{ } 標記限定符表達式的開始。要匹配 {,請使用 \{。
| 指明兩項之間的一個選擇。要匹配 |,請使用 \|。
分析:在有 [ 或 ] 的地方我們都要使用轉義字符/ 如:/[ 和 /]
情況1:中括號[]轉義符
問題:需要截取"Org":"[0013]總部配送中心","Id":"1001" 中的 0013字符,如何截取?

解決:通過正則表達式提取,添加斜杠/解決
"Org":"\[(.+?)\]總部配送中心","Id" 和 "Org":"\[(.*?)\]總部配送中心","Id" 兩種方式都可以,截圖如下:

情況2:響應斷言包含斜杠\ 時需要轉義
1、正常情況下,響應字符是這樣的
{"Success":true,"ErrorCode":0,"Message":"un-sxcs","Data":{}}
2、有時候會有斜杠的response,此時斷言會報錯,因為無法識別轉義字符,需要再轉義一次
{"msg":"{\"fail\":0,\"total\\":5000,\"success\":5000}
解決:添加斜杠解決響應斷言失敗問題
{"msg":"{\\"fail\\":0,\\"total\\":5000,\\"success\\":5000}

