正則表達式是繁雜,總是記不住,今天特地做一個正則表達式的總結,方便記憶
- 錨定:^和$,分別用來匹配字符串的開始和結束
例如:“^abc$”:就是要求以abc開頭和以abc結尾的字符串,實際上是隻有abc匹配;
- 重複:‘*’ ‘+’ 和 ‘?’,分別用來表示一個字符可以出現的次數或者順序 ,他們分別表示爲
“zero or more”相當於{0,},“ab*”:和ab{0,}同義,匹配以a開頭,後面可以接0個或者N個b組成的字符串(”a”, “ab”, “abbb”, 等);
“one or more”相當於{1,},“ab+”:和ab{1,}同義,同上條一樣,但最少要有一個b存在 (”ab” “abbb”等);
“zero or one.”相當於{0,1},“ab?”:和ab{0,1}同義,可以沒有或者只有一個b;
“a?b+$”:匹配以一個或者0個a再加上一個以上的b結尾的字符串。
- 範圍:{最少出現次數,最多出現次數}
例如:“ab{3,5}”: 要求a後面可以有2-5個b(”abbb”, “abbbb”, or “abbbbb”)。
- 分塊:()合併一個整體去匹配,並放入內存中
例如:“a(bc)*”: 匹配 a 後面跟0個或者一個”bc”;
- 邏輯:字符 ‘|’,相當於OR操作
例如:“(a|b)*c”: 匹配含有這樣多個(包括0個)a或b,後面跟一個c的字符串;
- 一個點:'.'可以代表所有的單一字符,不包括”\n”
例如:“a.[0-9]”: 一個a加一個字符再加一個0到9的數字;如果,要匹配包括”\n”在內的所有單個字符,怎麼辦?用’[\n.]’這種模式。
- 中括號:中括號括住的內容只匹配一個單一的字符
例如:“[a-d]”: 匹配’a’ 到’d’的單個字符 (和”a│b│c│d” 還有 “[abcd]”效果一樣);
- 以\開頭的
\b 出現在目標字符串的開頭或結尾的兩個邊界之一,邊界可以是空格或者特殊字符;比如’ve\b’,可以匹配love裏的ve而不匹配very裏有ve。
\B 對象必須位於目標字符串的開頭和結尾兩個邊界之內,即匹配對象既不能作爲目標字符串的開頭,也不能作爲目標字符串的結尾;
\s: 用於匹配單個空格符,包括tab鍵和換行符,等價於[\f\t\v];
\S: 用於匹配除單個空格符之外的任何一個字符,[^\f\t\v];
\w: 用於匹配一個字母、數字或下劃線字符,等價於[0-9a-zA-Z_];
\W: 用於匹配所有除英文字母、數字和下劃線以外任何的一個字符,[^0-9a-zA-Z_];
- 指定某一個範圍而不侷限於具體的字符