1. 程式人生 > >Linux正則表示式引擎(BRE ERE)支援的一些表達形式(Part.I BRE)

Linux正則表示式引擎(BRE ERE)支援的一些表達形式(Part.I BRE)

BRE(basic regular expression):以sed為例
純文字 :echo "Happy New Year" | sed -n '/Happy/p'
錨字元 :
匹配在行首 :echo "Happy New Year" | sed -n '/^Happy/p'
匹配在行尾 :echo "Happy New Year" | sed -n '/Year$/p'
點字元 :echo “have a good time” | sed -n '/ . /p'
字元組 :echo “have a good time” | sed -n '/ [abcde] /p'
排除型 :echo "have b good time" | sed -n '/ [^a] /p' 
區間 :echo "have c good time" | sed -n '/ [a-d] /p'
特殊字元組 :
[[:alpha:]] :匹配任意字母字元,忽視大小寫
[[:alnum:]] :匹配任意字母或數字,字母忽視大小寫
[[:blank:]] :匹配空格或者製表符
[[:digit:]] :匹配數字
[[:lower:]] :匹配小寫字母
[[:print:]] :匹配可列印字元
[[:punct:]] :匹配標點符號
[[:space:]] :匹配任意空白字元(Space Tab  FF(換頁) VT(垂直製表符) CR(回車)和NL(換行))
*注 :回車和換行在ASCII碼中不同,詳見:https://m.jb51.net/article/26547.htm
[[:upper:]] :匹配大寫字母
星號 :echo "ik" | sed -n '/ie*k/p'字元出現0次或者N次

用例 :
查詢空行刪除 :(echo "first";echo "";echo "Third") | sed '/^$/d'
查詢可能相連,可能分離的兩個詞 :
(echo "HaveFun";echo "Have Fun";echo "Have   Fun") | sed -n '/Have.*Fun/p'


              --------------------《Linux Command Line and Shell Scripting Bible,3E》