should match regexp是rf buildin關鍵字,入參為string, pattern, msg=none, values=true;前2個引數為必選,後2個引數為可選引數。基於python re模組實現。
(1)\是轉義字元
(2)匹配字串可包含特殊字元,但在字串中午特殊含義,只是文字意思。
(3)匹配模式不是全字元匹配。若需要全字元匹配,在匹配模式字元首加^,字元尾加$
$=should match regexp
123abc123
abclog$
執行結果
0170213 06:08:15.031 : info : $ = abc
20170213 06:08:15.031 : info : abc
$=should match regexp
123abc123
^abc$
log$
執行結果
20170213 06:13:05.890 : fail : '123abc123' does not match '^abc$'
$=should match regexp
abc^abc$
log$
執行結果
20170213 06:15:33.515 : info : $ = abc
20170213 06:15:33.515 : info : abc
(4)可選標識
i 不區分大小寫
u依賴於unicode
l本地化
返回匹配成功的字串,也可以返回匹配的子字串。
例項如下:匹配字串str1,值為1 msv 3 v1.1 inservice;匹配模式為1\\s+(\\w+)\\s+(\\d+)\\s+(\\s+)\\s+(\\s+);
匹配成功的字串賦給變數match,匹配成功的子字串賦給變數cardtype、portnum、ver、status
執行結果,match、cardtype、portnum、ver、status的值如下:
msg預設為none,可以給其賦值,當執行失敗後會列印該提示。
$set variable
fo1o:11
$=should match regexp
$(?i)foo:\\d+
msg=匹配失敗
執行結果
starting test: testproject2.testsuite.shouldmatchregexp
20170213 06:35:32.296 : info : $ = 123456ab
20170213 06:35:32.312 : info : $ = fo1o:11
20170213 06:35:32.312 : info : $ = 123456
20170213 06:35:32.312 : fail : 匹配失敗: 'fo1o:11' does not match '(?i)foo:\d+'
ending test: testproject2.testsuite.shouldmatchregexp
正規表示式 匹配
字串 void abtr quint32 ab 表示乙個正規表示式 template class bidirectionaliterator class allocator std allocator sub match bidirectionaliterator class match resul...
正規表示式匹配
請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 解法 首先要想到用遞迴處理...
正規表示式匹配
請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 class solutio...