10. 正则表达式匹配

68 阅读1分钟

10. 正则表达式匹配

func isMatch(s string, p string) bool {
	if len(p) == 0 {
		return len(s) == 0
	}
        // 先假设 * 表示 0 个若无法匹配,在判断 * 表示多个字符的情况
	if len(p) > 1 && p[1] == '*' {
		return (isMatch(s, p[2:])) || (len(s) != 0 && (s[0] == p[0] || '.' == p[0]) && isMatch(s[1:], p))

	} else {
		return len(s) > 0 && (s[0] == p[0] || p[0] == '.') && isMatch(s[1:], p[1:])
	}

}