1. 程式人生 > >linux正則

linux正則

大小 div light 進制 com blog color HR res

正則表達式


分兩類: 基本正則表達式:BRE 擴展正則表達式:ERE ;grep -E, egrep

正則表達式引擎: 采用不同算法,檢查處理正則表達式的軟件模塊 PCRE(Perl Compatible Regular Expressions


基本正則表達式的元字符

字符匹配:  .    匹配任意單個字符  
[]   匹配指定範圍內的任意單個字符  
[^]  匹配指定範圍外的任意單個字符 
[:alnum:] 字母和數字   
[:alpha:] 代表任何英文大小寫字符,亦即 A-Z, a-z  
[:lower:] 小寫字母   
[:upper:] 大寫字母  
[:blank:] 空白字符(空格和制表符)  
[:space:] 水平和垂直的空白字符(比[:blank:]包含的範圍廣)  
[:cntrl:] 不可打印的控制字符(退格、刪除、警鈴...)  
[:digit:] 十進制數字 [:xdigit:]十六進制數字  
[:graph:] 可打印的非空白字符  
[:print:] 可打印字符  
[:punct:] 標點符號  


正則表達式的匹配次數

匹配次數:用在要指定次數的字符後面,用於指定前面的字符要出現的次數  
* 匹配前面的字符任意次,包括0次   貪婪模式:盡可能長的匹配  
.* 任意長度的任意字符  
\? 匹配其前面的字符0或1次  
\+ 匹配其前面的字符至少1次  
\{n\} 匹配前面的字符n次  
\{m,n\} 匹配前面的字符至少m次,至多n次  
\{,n\} 匹配前面的字符至多n次  
\{n,\} 匹配前面的字符至少n次 

正則表達式的位置錨定

?位置錨定:定位出現的位置  
^ 行首錨定,用於模式的最左側 
$ 行尾錨定,用於模式的最右側 
^PATTERN$  用於模式匹配整行   
        ^$  空行   
        ^[[:space:]]*$  空白行  
\< 或 \b 詞首錨定,用於單詞模式的左側  
\> 或 \b 詞尾錨定;用於單詞模式的右側  
\<PATTERN\> 匹配整個單詞     

正則表達式分組

分組:\(\) 將一個或多個字符捆綁在一起,當作一個整體進行處理,如: \(root\)\+ 
分組括號中的模式匹配到的內容會被正則表達式引擎記錄於內部的變量中,這 些變量的命名方式為: \1, \2, \3, ... 
\1  表示從左側起第一個左括號以及與之匹配右括號之間的模式所匹配到的字符
    示例:  \(string1\+\(string2\)*\)        \1 :string1\+\(string2\)*        \2 :string2
後向引用:引用前面的分組括號中的模式所匹配字符,而非模式本身
或者:\|  
    示例:a\|b: a或b  C\|cat: C或cat   \(C\|c\)at:Cat或cat

egrep擴展正則表達式

1.字符匹配: 
 . 任意單個字符  
[] 指定範圍的字符  
[^] 不在指定範圍的字符

2.次數匹配

*:匹配前面字符任意次  
?: 0或1次  +:1次或多次  
{m}:匹配m次  
{m,n}:至少m,至多n次

3.位置錨定

位置錨定:  
    ^  :行首  
    $  :行尾  
    \<, \b :語首  
    \>, \b :語尾 
分組:     
    ()    
    後向引用:\1, \2, ... 
或者:  
    a|b: a或b  
    C|cat: C或cat  
    (C|c)at:Cat或cat 

  


linux正則