正規表示式匹配

2022-05-10 01:31:41 字數 1111 閱讀 8708

1

package

algorithms;23

/**4

* 請實現乙個函式用來匹配包括'.'和'*'的正規表示式。 模式中的字元'.'表示任意乙個字元,而'*'表示它前面的字元可以出現任意次(包含0次)。

5* 在本題中,匹配是指字串的所有字元匹配整個模式。 例如,字串"aaa"與模式"a.a"和"ab*ac*a"匹配,但是與"aa.a"和"ab*a"均不匹配6*

7* 8*

*/910public

class

stringmatch

1415

public

boolean matchcore(char str, int i, char pattern, int

j) 19

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

20return

false;21

//一種較為複雜的情況 即模式的字元後面乙個字元為*

22if (j < pattern.length - 1 && pattern[j + 1] == '*') else

30return matchcore(str, i, pattern, j + 2);

3132}33

//如果模式的字元後乙個不是*時,該情況較為簡單 直接比較即可

34if (i < str.length && j < pattern.length && (str[i] == pattern[j] || (pattern[j] == '.' && i 35return matchcore(str, i + 1, pattern, j + 1);

36return

false;37

}3839public

static

void

main(string args) ;

41char pattern = ;

42 stringmatch ma = new

stringmatch();

43system.out.println(ma.match(str, pattern));44}

45 }

正規表示式 匹配

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