正則表達式匹配空字符串?正則表達式是匹配模式,要麼匹配字符,要麼匹配位置,接下來我們就來聊聊關于正則表達式匹配空字符串?以下内容大家不妨參考一二希望能幫到您!
正則表達式匹配空字符串
正則表達式是匹配模式,要麼匹配字符,要麼匹配位置。
兩種模糊匹配
橫向模糊匹配定義:一個正則可匹配的字符串的長度不是固定的,可以是多種情況的 表示:{m,n},表示連續出現最少m次,最多n次 例子:比如正則 /ab{2,4}c/ 匹配:abbc/abbbc/abbbbc
縱向模糊匹配定義:一個正則匹配的字符串,具體到某一位字符時,它可以不是某個确定的字符 表示:[abc],表示該字符可以是字符"a"、"b"、"c"中的任何一個。 例如:比如 /a[123]b/ 匹配:a1b/a2b/a3b
字符組
縱向匹配 雖叫字符組,但還是隻匹配一個字符
範圍表示法使用場景:字符組裡相鄰的字符特别多可以使用範圍表示法 例如:123456abcdefgHIGKLMN,可以簡寫成[1-6a-gH-N] 注意:隻匹配'a' '-' 'z'這三個字符,不能寫成[a-z]這種寫法,可以寫成[-az]或[az-]或[a-z]
排除字符組場景:縱向匹配 某一位不能是'a' 'b' 'c'這三個字符其中的一個 例子:[^abc]
簡寫形式字符組 具體含義 \d [digit] [0-9],一位數字 \D [^0-9],0-9之外的任意一位字符 \w [word] [0-9a-zA-Z_],單詞字符 \W [^0-9a-zA-Z_],非單詞字符 \s [space] [\t\v\n\r\f],空白符,包括空格、水平制表符、垂直制表符、換行符、回車符、換頁符 \S [^\t\v\n\r\f] 非空白符 . [^\n\r\u2028\u2029] 通配符
量詞
量詞也稱重複
簡寫形式量詞 含義 {m,} 至少出現m次 {m} 等價 {m,m} 出現固定m次 ? 等價 {0,1} 表示可出現可不出現 等價 {1,} 表示至少出現一次 * 等價 {0,} 表示出現任意次,有可能不出現
貪婪匹配與惰性匹配- 貪婪匹配:盡可能多的匹配
varregex=/\d{2,5}/g;
vartest="123123412345123456";
console.log(test.match(regex));//["123","1234","12345"]
- 惰性匹配:盡可能少的匹配
varregex=/\d{2,5}?/g;
vartest="123123412345123456";
console.log(test.match(regex));//["12","12","34","12","34","12","34","56"]
- 通過在量詞後面加個問号就能實現惰性匹配
惰性量詞 貪婪量詞 {m,n}? {m,n} {m,}? {m,} ?? ? ? *? *
多選分支
一個模式可以實現橫向和縱向模糊匹配,而多選分支可以支持多個子模式任選其一。 具體形式如下:(p1|p2|p3)
- 不同字符
varregex=/good|nice/g;
vartest="goodidea,nicetry.";
console.log(test.match(regex));//["good","nice"]
- 具有相同字符
varregex=/good|goodbye/g;
vartest="goodbye";
console.log(test.match(regex));//["good"]
- 改變位置
varregex=/goodbye|good/g;
vartest="goodbye";
console.log(test.match(regex));//["goodbye"]
分支結構也是惰性的,即當前面的匹配上了,後面的就不再嘗試了
,