正規表達式分類
基本的正則表倒是,又叫basic regex
擴充的正規表達式,又叫extended regex
Perl的正規表達式,又叫perl regex
基本組成部分:
\ 轉義符,将特殊字元進行轉義,忽略其特殊意義。a\.b比對a.b,但不能比對ajb,被轉義為特殊意義
\n表示換行,\r表示回車,\t表示水準的制表符,\v表示垂直的制表符,\b表示後退符,\a表示警告,0xx翻譯成ASCII碼為八進制0xx鎖表示的字元
^比對行首,awk中,^則是比對字元創的開始,^比對以tux開頭的行
$比對行尾,awk中,則是比對字元串的結尾
.比對除換行符\n之外的任意單個字元,awk則中可以。ab.比對abc或bad,不可比對adcd或abde,隻能比對單字元
[]比對包含在[^字元之外的任意一個字元],123[^45]不可以比對1234或1235,1236.1237都可以
[-]比對[]中指定範圍内的任意一個字元,要寫成遞增,[0-9]可以比對1,2或3等其中任意一個數字
?比對之前的項1次或者0次,colou?r可以比對colour或者colour或者colour,不能比對colouur
+比對之前的項1次或者0次,sa-6+比對sa-6,sa-666,不能比對sa-
*比對之前的想0次或多次,co*l,比對cl,col,cool,cool等
()比對表達式,建立一個用于比對的子串。
{n}配置之前的項n次,n是可以為0的正整數。
{n,}之前的項至少需要比對n次,[0-9]{2,}比對任意一個兩位數或更多位數
[n,m]指定之前的想至少比對n次,最多比對m次,n<=m,[0-9]{2,5}比對從兩位數到五位數之間的任意一個數字
|交替比對|兩邊的任意一項ab(c|d)比對abc或adb
posix字元類
posix字元類是一個形如[:...:]的特殊元序列(meta sequence),他可以用于比對特定的字元範圍
[:alnum:]比對人一個一個字母或數字字元,[[:alnum:]]+
[:alpha:]比對任意一個字母字元(包括大小寫),[[:alpha:]]{4}
[:blank:]空格與制表符(橫向和縱向),[[:blank:]]*
[:digit:]比對熱一個數字字元,[[:digit:]]?
[:lower:]比對小寫字母,[[:lower:]]{5,}
[:upper:]比對大寫字母,([[:upper:]]+)?
[:punct:]比對标點符号,[[:punct:]]
[:space:]比對一個包括換行符,回車等在内的所有空白符,[[:space:]]+
[:graph:]比對任何一個可以看得見的且可以列印的字元,[[:graph:]]
[:xdigit:]任何一個十六進制數(即:0-9,a-f,A-F)
[:cntrl:]任何一個控制字元(ASCII字元集中的前32個字元),[[:cntrl:]]
[:print:]任何一個可以列印的字元,[[:print:]]
本文轉自 宏強 51CTO部落格,原文連結:http://blog.51cto.com/tanhong/2056923