劍指offer 2 正規表示式的匹配 124

2021-09-26 19:11:50 字數 1160 閱讀 4350

package _02.正規表示式的匹配;

/** * 題目描述:

* 請實現乙個函式用來匹配包括'.'和'*'的正規表示式。

* 模式中的字元'.'表示任意乙個字元,而'*'表示它前面的字元可以出現任意次(包含0次)。

* 在本題中,匹配是指字串的所有字元匹配整個模式。

* 例如,字串"aaa"與模式"a.a"和"ab*ac*a"匹配,但是與"aa.a"和"ab*a"均不匹配

* @author administrator

* */

public

class

regexmatch

return

matchcore

(str,

0,pattern,0)

;}public

static

boolean

matchcore

(char

str,

int strindex,

char

pattern,

int patternindex)

//2.如果匹配串沒匹配完,模式串就已經結束了返回false

if(strindex != str.length && patternindex == pattern.length)

//3.如果匹配串匹配完了,模式串還沒匹配完

if(strindex == str.length && patternindex != pattern.length)

else

}//4.匹配串和模式串都沒匹配完

//如果模式串的第二個字元不是*或者已經只剩乙個字元了

if(patternindex == pattern.length-

1|| pattern[patternindex+1]

!='*'

)else

}//如果模式串的第二個字元是*:(1)匹配串後移一位,模式串不變;(2)匹配串後移一位,模式串後移兩位(3)匹配串不變,模式串後移兩位

else

else}}

public

static

void

main

(string[

] args)

}

劍指offer 正規表示式匹配

請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 abaca 匹配,但是與 aa.a 和 aba 均不匹配 由於只涉及兩種正規表示式的匹配,...

劍指Offer 正規表示式匹配

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

劍指offer 正規表示式匹配

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