劍指正規表示式

2021-10-03 21:23:09 字數 1417 閱讀 8053

因為這個想得太亂了,mark在這邊記下來

note:涉及二元的只有*,因此將*和其他分開即可。同時又是乙個遞迴方法,設定掃瞄終止條件。

class solution3:

# s, pattern都是字串

# 問題可以分為兩個部分,匹配過了的,和沒有匹配的,可以拆分之後用遞迴來完成

# 每次匹配第一位時,都有三種情況

def match(self, s, pattern):

# write code here

if s is none or pattern is none:

return false

s_idx = 0

pattern_idx = 0

return self.matchcore(s, s_idx, pattern, pattern_idx)

def matchcore(self, s, s_idx, pattern, p_idx):

if len(s) == s_idx and len(pattern) == p_idx:

return true

if len(s) > s_idx and len(pattern) == p_idx:

return false

if p_idx + 1 < len(pattern) and pattern[p_idx + 1] == '*':

if (not ischrtail(len(s), s_idx)) and (pattern[p_idx] == s[s_idx] or pattern[p_idx] == '.'):

return self.matchcore(s, s_idx + 1, pattern, p_idx + 2) or self.matchcore(s, s_idx, pattern,p_idx + 2) or self.matchcore(s, s_idx + 1,pattern,p_idx)

pass

else:

return self.matchcore(s, s_idx, pattern, p_idx + 2)

pass

pass

if (not ischrtail(len(s), s_idx)) and (pattern[p_idx] == s[s_idx] or pattern[p_idx] == '.'):

return self.matchcore(s, s_idx + 1, pattern, p_idx + 1)

return false

def ischrtail(str_len, idx):

if str_len - idx:

return false

return true

Python劍指》正規表示式匹配

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

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...