RF之正規表示式匹配

2021-07-26 21:47:24 字數 1770 閱讀 3384

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...