正則表達式

正則表達式是繁雜,總是記不住,今天特地做一個正則表達式的總結,方便記憶

  • 錨定:^和$,分別用來匹配字符串的開始和結束

 例如:“^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];

\d:   匹配從0到9的一個數字,等價於[0-9];

\D     匹配除數字以外任何一個字符,等價於[^0-9];

\w:   用於匹配一個字母、數字或下劃線字符,等價於[0-9a-zA-Z_];

\W:   用於匹配所有除英文字母、數字和下劃線以外任何的一個字符,[^0-9a-zA-Z_];

\A     匹配字符串串首的原子

\Z     匹配字符串串尾的原子

\f     匹配一個換頁符等價於 \x0c 或 \cL

匹配一個換行符;等價於 \x0a 或 \cJ

匹配一個回車符等價於\x0d 或 \cM

\t     匹配一個製表符;等價於 \x09\或\cl

\v     匹配一個垂直製表符;等價於\x0b或\ck

\oNN   匹配一個八進制數字

\xNN   匹配一個十六進制數字

\cC    匹配一個控制字符

  • 指定某一個範圍而不侷限於具體的字符

/[A-Z]/

上述正則表達式將會與從A到Z範圍內任何一個大寫字母相匹配。

/[a-z]/

上述正則表達式將會與從a到z範圍內任何一個小寫字母相匹配。

/[0-9]/

上述正則表達式將會與從0到9範圍內任何一個數字相匹配。

/([a-z][A-Z][0-9])+/

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章