正規表示式匹配

2021-07-27 03:34:22 字數 959 閱讀 6132

題目描述

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

演算法解析:

同時遍歷兩個字串,當匹配模式串中的當前值不是』*『,下乙個值為』*『的時候,而』*』表示它前面的字元可以出現任意次(包含0次),所以遇到這種情況的時候,這個模式字元可能出現0次,1次,或者多次,所以剩下字串和模式串的匹配結果由這三種的結果共同影響。

**如下:

public

boolean

match(char str, char pattern)

return matchcore(str, pattern, 0, 0);

}private

boolean

matchcore(char str, char pattern, int i, int j)

if (i == str.length && j != pattern.length)

j++;

}return

true;

}if (i != str.length && j == pattern.length)

if (j == pattern.length - 1)

return

false;

}if (pattern[j + 1] == '*')else

}if (str[i] == pattern[j] || (pattern[j] == '.' &&

i != str.length))

return

false;

}

正規表示式 匹配

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