正則表達式總結

本文轉自朱雙印博客http://www.zsythink.net/archives/tag/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/
基礎正則表達式

* 表示前面的字符連續出現任意次,包括0次。
.  表示任意單個字符。
.* 表示任意長度的任意字符,與通配符中的*的意思相同。
\? 表示匹配其前面的字符0或1次
\+ 表示匹配其前面的字符至少1次,或者連續多次,連續次數上不封頂。
\{n\} 表示前面的字符連續出現n次,將會被匹配到。
\{x,y\} 表示之前的字符至少連續出現x次,最多連續出現y次,都能被匹配到,換句話說,只要之前的字符連續出現的次數在x與y之間,即可被匹配到。
\{,n\} 表示之前的字符連續出現至多n次,最少0次,都會陪匹配到。
\{n,\} 表示之前的字符連續出現至少n次,纔會被匹配到. 

[  ] 表示匹配指定範圍內的任意單個字符
[^  ] 表示匹配指定範圍外的任意單個字符
[[:alpha:]]  表示任意大小寫字母
[[:lower:]]  表示任意小寫字母
[[:upper:]]  表示任意大寫字母
[[:digit:]]  表示0到9之間的任意單個數字(包括0和9)
[[:alnum:]]  表示任意數字或字母
[[:space:]]  表示任意空白字符,包括"空格"、"tab鍵"等。
[[:punct:]]  表示任意標點符號
[0-9]與[[:digit:]]等效
[a-z]與[[:lower:]]等效
[A-Z]與[[:upper:]]等效
[a-zA-Z]與[[:alpha:]]等效
[a-zA-Z0-9]與[[:alnum:]]等效
[^0-9]與[^[:digit:]]等效
[^a-z]與[^[:lower:]]等效
[^A-Z]與[^[:upper:]]等效
[^a-zA-Z]與[^[:alpha:]]等效
[^a-zA-Z0-9]與[^[:alnum:]]等效

 
#簡短格式並非所有正則表達式解析器都可以識別

\d 表示任意單個0到9的數字
\D 表示任意單個非數字字符
\t 表示匹配單個橫向製表符(相當於一個tab鍵)
\s表示匹配單個空白字符,包括"空格","tab製表符"等
\S表示匹配單個非空白字符

擴展正則表達式
擴展正則表達式70%與基礎正則表達式一致,30%可對一些基礎正則表達式進行簡寫

| 表示或者之意 (擴展獨有)

次數匹配相關

?  表示匹配其前面的字符0或1次
+  表示匹配其前面的字符至少1次,或者連續多次,連續次數上不封頂。
{n} 表示前面的字符連續出現n次,將會被匹配到。
{x,y} 表示之前的字符至少連續出現x次,最多連續出現y次,都能被匹配到,換句話說,只要之前的字符連續出現的次數在x與y之間,即可被匹配到。
{,n} 表示之前的字符連續出現至多n次,最少0次,都會陪匹配到。
{n,}表示之前的字符連續出現至少n次,纔會被匹配到。

 
位置邊界匹配相關

^:表示錨定行首,此字符後面的任意內容必須出現在行首,才能匹配。
$:表示錨定行尾,此字符前面的任意內容必須出現在行尾,才能匹配。
^$:表示匹配空行,這裏所描述的空行表示"回車",而"空格"或"tab"等都不能算作此處所描述的空行。
^abc$:表示abc獨佔一行時,會被匹配到。
\<或者\b :匹配單詞邊界,表示錨定詞首,其後面的字符必須作爲單詞首部出現。
\>或者\b :匹配單詞邊界,表示錨定詞尾,其前面的字符必須作爲單詞尾部出現。
\B:匹配非單詞邊界,與\b正好相反。

 
分組與後向引用

( ) 表示分組,我們可以將其中的內容當做一個整體,分組可以嵌套。
(ab) 表示將ab當做一個整體去處理。
\1 表示引用整個表達式中第1個分組中的正則匹配到的結果。
\2 表示引用整個表達式中第2個分組中的正則匹配到的結果。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章