天天看點

玩轉shell-基礎正則和擴充正則

文章目錄

  • 基礎正則(BRE)
  • 擴充正則(ERE)
  • 其他元字元

下面為 linux 三劍客都通用的正則,有基礎正則和擴充正則,其中 grep 和 sed 需要加上

-E

才能使用擴充正則,或者不用

-E

,直接對擴充正則中的特殊字元加上

\

進行轉義也行。awk 倒是很友善,不用加

-E

直接使用擴充正則

# 以什麼開頭,a 打頭
^
^a
# 以什麼結尾,a 結尾
$
a$
# 表示空行
^$
# 表示任一個字元
.
# 表示區間,比對到含有 a c d,比對所有數字,比對所有大小寫字母
[]
[acd]
[0-9]
[a-Z]
#比對不在這個範圍的字元,這裡的 ^ 可不是打頭了而是有取反的意味
[^a-z]
# 表示比對前一個字元可出現 0 個或多個,a 出現 0 次或多次
*
ba*
           
# 非貪婪比對,上一個字元 a 出現或沒有出現
?
ba?
# 比對前一個字母出現一個或多個,比對 a 出現一個或多個
+
ba+
# 分組比對,小括号中是一個整體
()
te(s|x)t
# 範圍限制,比對 a 最少 1 次,最多連續出現 5 次,如 a,aa,aaa,aaaa,aaaaa
{}
n{1,5}
# 比對多個表達式的任何一個,比對 e 或 l
|
e|l
           
# 比對一個空格
\s

# 比對出單詞
\b

# 舉例,比對出“a hello b”中的hello單詞我們怎麼做
# 這樣寫會把兩邊空格也輸出,輸出“ hello ”
\shello\s
# 這樣寫可以輸出“hello”
\bhello\b

# 表示一個數字,等價于 [0-9]
\d
           

繼續閱讀