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次, 某字元出現2-4次
為了識別正規表示式間隔,awk指定 --re- interval 命令
1.6.4「|」或運算,滿足任意乙個即可匹配
格式如下: 【expr1】|【expr2|】 awk '/[0-9]|ab/' 匹配0-9數字或 ab的字元
1.6.5「()」表示式分組,其內容結果相當於字串
正規表示式學習筆記
正規表示式學習日記 1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫...
正規表示式學習筆記
字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
正規表示式學習筆記
1.正規表示式是可用於在乙個檔案或字元裡查詢和替代文字的一種標準。它具有兩種標準 基本的正規表示式 bre 擴充套件的正規表示式 ere ere包括bre功能和另外其它的概念。2.表示或運算 3.匹配任何單個字元 4.匹配任何中包含的單個字元,如 張王李 三,匹配張 三 王三,李三 5.將排除 後跟...