正規表示式匹配

2021-07-28 19:22:36 字數 997 閱讀 5088

題目描述

請實現乙個函式用來匹配包括』.』和』『的正規表示式。模式中的字元』.』表示任意乙個字元,而』『表示它前面的字元可以出現任意次(包含0次)。 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串」aaa」與模式」a.a」和」ab*ac*a」匹配,但是與」aa.a」和」ab*a」均不匹配

昨天晚上提交不通過,今天提交就能通過,也是服了。

題目明顯可以實用遞迴進行求解,注意一下幾種情況,

1、pattern中出現連續兩個『*』或者開頭就是」*」的直接返回false,因為這不是正確的正規表示式。

2、如果pattern到達末尾,那麼str必須到達末尾,否則直接返回不匹配

3、如果pattern沒有達到末尾,但是str到達末尾,則需要單獨判斷之後的pattern是否是連續出現兩個非「*」如果是返回false,直到遍歷到pattern末尾返回true

4、對於其他情況,如果對應的pattern第二個字元不是「*」,那麼直接比對當前字元,不匹配直接返回false,匹配的話pattern和str都向前加1;

5、如果對應的pattern第二個字元是『*』那麼分為以下幾種情況

如果當前字元是不匹配的:

如果當前字元是匹配的:

class solution 

return recurmatch(str,pattern);

}bool recurmatch(char* str, char* pattern)

if(*pattern==*str||*pattern=='.')

return recurmatch(str+1, pattern)||recurmatch(str, pattern+2)||recurmatch(str+1, pattern+2);

return recurmatch(str, pattern+2);

}bool judgepatt(char *patt)

return

true;

}};

正規表示式 匹配

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