正則表達式匹配
給定一個字符串 (s)
和一個字符模式 (p)
。實現支持 '.'
和 '*'
的正則表達式匹配。
'.'
匹配任意單個字符。'*'
匹配零個或多個前面的元素。
匹配應該覆蓋整個字符串 (s)
,而不是部分字符串。
說明:s
可能爲空,且只包含從 a-z
的小寫字母。p
可能爲空,且只包含從 a-z
的小寫字母,以及字符 .
和 *
。
示例 1:
輸入:
s = "aa"
p = "a"
輸出: false
解釋: "a" 無法匹配 "aa" 整個字符串。
示例 2:
輸入:
s = "aa"
p = "a*"
輸出: true
解釋: '*' 代表可匹配零個或多個前面的元素, 即可以匹配 'a' 。因此, 重複 'a' 一次, 字符串可變爲 "aa"。
示例 3:
輸入:
s = "ab"
p = ".*"
輸出: true
解釋: "." 表示可匹配零個或多個('')任意字符('.')。
示例 4:
輸入:
s = "aab"
p = "cab"
輸出: true
解釋: 'c' 可以不被重複, 'a' 可以被重複一次。因此可以匹配字符串 "aab"。
示例 5:
輸入:
s = "mississippi"
p = "misisp*."
輸出: false
答案參考:
/**
* @param {string} s
* @param {string} p
* @return {boolean}
*/
var isMatch = function(s, p) {
var reg = new RegExp('^' + p + '$')
return reg.test(s)
};