正則表達式學習筆記

1.1 正則表達式,區分大小寫
echo "This is a test" | sed -n '/this/p' 將不會有輸出
----
$ echo "This is a test" | sed -n '/This/p'
This is a test
 
1.2 正則表達式,不用將單詞完整寫出
$ echo "The books are expensive" | sed -n '/book/p'
The books are expensive
 
1.3 空格在正則表達式中是一樣的,沒有其他區別。  “ber 1” 匹配“number 1”
$ echo "This is line number 1" | sed -n '/ber 1/p'
This is line number 1
 
1.4 在正則文本模式中不能單獨使用 特殊字符(共計11個)
     . * []^ $ {} \ + ? | ()        ".*[]^$\"  屬於基礎正則表達式BRE      “{}+?|()”屬於擴展正則表達式 ERE(某些不會支持)
 
    要使用需要使用轉義符  通常是 加上反斜槓  \.  "\?"   "\$"   "\\"       斜槓最好也做轉義處理 "\/"    
 
    1.4.1 “.”匹配除換行符之外的任意單個字符    
    可以匹配空格,但必須要佔一個字符
    
    
    1.4.2“[]”字符組 
    "[ch]at"只匹配 cat、hat。
    
    忽略大小寫
    $  echo "yEs" | sed -n '/[Yy][Ee][Ss]/p'
    yEs
    "[^]"排除型字符組(取反)   ,但以at開頭的無法匹配,因爲字符組仍要佔一個字符
     
    字符組區間 ,[0-9] 任意數字。 區間採用 系統採用的字符集。
 
    “[a-ch-m0-9]”匹配 a-c 或 h-m 或 0-9 的字符
    
 
    1.4.3 "*" 匹配0個或多個特定字符
        i3*k  匹配了0個或多個3
    
    配合上字符組
    
 
 
 
    1.4.4 特殊字符(估計能用到的場合比較特殊)
描 述
[[:alpha:]]
匹配任意字母字符,不管是大寫還是小寫
[[:alnum:]]
匹配任意字母數字字符0~9、 A~Z或a~z
[[:blank:]]
匹配空格或製表符
[[:digit:]]
匹配0~9之間的數字
[[:lower:]]
匹配小寫字母字符a~z
[[:print:]]
匹配任意可打印字符
[[:punct:]]
匹配標點符號
[[:space:]]
匹配任意空白字符:空格、製表符、 NL、 FF、 VT和CR
[[:upper:]]
匹配任意大寫字母字符A~Z
1.5 錨字符(已***開頭、已***結尾)  因爲,正則本來是匹配數據流的任意地方
 
    1.5.1“^” 鎖定行首
    
    如果將該符號放到其他地方,他就是普通字符
$  echo "This ^ is a test" | sed -n '/his ^/p'
This ^ is a test
 
 
 
    1.5.2 $”鎖定行尾
    
 
    
 
    1.5.3 組合錨點
 
        過濾掉空行
    
 
1.6 擴展正則表達式
    “{}+?|()”屬於擴展正則表達式 ERE(某些不會支持,比如sed)
 
    1.6.1“?”匹配出現0-1次的字符  
    
 
    1.6.2“+”匹配出現1-n次的字符,該字符未出現,則匹配失敗
    
 
    1.6.3“{}” 爲可重複的正則表達式指定一個上限,稱爲間隔(interval)
    {3} 某字符出現3次, {2,4}某字符出現2-4次
    爲了識別正則表達式間隔,awk指定  --re- interval 命令
    
    
 
    1.6.4“|”或運算,滿足任意一個即可匹配
    格式如下:   【expr1】|【expr2|】    awk '/[0-9]|ab/{print $0}'  匹配0-9數字或 ab的字符
 
    1.6.5“()”表達式分組,其內容結果相當於字符串
    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
發佈了29 篇原創文章 · 獲贊 9 · 訪問量 9289
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章