正規表示式匹配 C 實現

2021-10-24 02:03:41 字數 728 閱讀 1427

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

牛客網題目鏈結

這是乙個字串匹配的問題,只是有一些特殊字元的干擾,出現.可以代替任何字元,出現*則可以消去一些字元,我們只需要關注*,因為出現.我們可以認為匹配上了。

如果沒有的話兩個字串位置對照進行比較,如果不相等則匹配不成功(模式字串裡有.算做相等的情況)。

class

solution

bool

handle

(char

*str,

char

*pattern)if(

*str==

*pattern||

(*pattern==

'.'&&

*str!=

'\0'))

return

handle

(str+

1,pattern+1)

;return

false;}

};

占用記憶體:472k

C 正規表示式 匹配

有時我們需要匹配像 100 50 15 這樣的可巢狀的層次性結構 這時簡單地使用 則只會匹配到最左邊的左括號和最右邊的右括號之間的內容 這裡我們討論的是貪婪模式,懶惰模式也有下面的問題 假如原來的字串裡的左括號和右括號出現的次數不相等,比如 5 3 2 那我們的匹配結果裡兩者的個數也不會相等。有沒有...

c 實現正規表示式匹配

c 11之後封裝了自己的正規表示式,直接包含檔案即可使用,利用regex類宣告物件初始化正規表示式,regex expressionname 正規表示式 正規表示式具體語法參考這裡 regex match 方法進行匹配,匹配成功返回1,失敗返回0 cmatch和smatch類分別存放char 和st...

正規表示式 匹配

字串 void abtr quint32 ab 表示乙個正規表示式 template class bidirectionaliterator class allocator std allocator sub match bidirectionaliterator class match resul...