shell 正規表示式

2022-07-20 02:12:06 字數 1892 閱讀 5009

shell 常用正規表示式

常用的正則表達

^ # 行首定位

$ # 行尾定位

. # 匹配除換行符以外的任意字元

* # 匹配0或多個重複字元

+ # 重複一次或更多次

? # 重複零次或一次

?    # 結束貪婪因子 .*? 表示最小匹配

# 匹配一組中任意乙個字元

[^] # 匹配不在指定組內的字元

\ # 用來轉義元字元

< # 詞首定位符(支援vi和grep) # 詞尾定位符(支援vi和grep) love>

x\ # 重複出現m次

x\ # 重複出現至少m次

x\ # 重複出現至少m次不超過n次

x? # 匹配出現零次或一次的大寫字母 x

x+ # 匹配乙個或多個字母 x

() # 括號內的字元為一組

(ab|de)+ # 匹配一連串的(最少乙個) abc 或 def;abc 和 def 將匹配

[[:alpha:]] # 代表所有字母不論大小寫

[[:lower:]] # 表示小寫字母

[[:upper:]] # 表示大寫字母

[[:digit:]] # 表示數字字元

[[:digit:][:lower:]] # 表示數字字元加小寫字母

元字元

\d 	  # 匹配任意一位數字

\d # 匹配任意單個非數字字元

\w # 匹配任意單個字母數字下劃線字元,同義詞是 [:alnum:]

\w # 匹配非數字型的字元

字元類:空白字元

\s    # 匹配任意的空白符

\s # 匹配非空白字元

\b # 匹配單詞的開始或結束

\n # 匹配換行符

\r # 匹配回車符

\t # 匹配製表符

\b # 匹配退格符

\0 # 匹配空值字元

字元類:錨定字元

\b    # 匹配字邊界(不在中時)

\b # 匹配非字邊界

\a # 匹配字串開頭

\z # 匹配字串或行的末尾

\z # 只匹配字串末尾

\g # 匹配前一次m//g離開之處

捕獲

(exp)                # 匹配exp,並捕獲文字到自動命名的組裡

(?exp) # 匹配exp,並捕獲文字到名稱為name的組裡,也可以寫成(?'name'exp)

(?:exp) # 匹配exp,不捕獲匹配的文字,也不給此分組分配組號

零寬斷言

(?=exp)              # 匹配exp前面的位置

(?<=exp) # 匹配exp後面的位置

(?!exp) # 匹配後面跟的不是exp的位置

(?特殊字元

^h \010 \b

^m \015 \r

匹配特殊字元: ctrl+v ctrl不放在按h或m 即可輸出^h,用於匹配

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...

shell 正規表示式

一 從頭開始 echo the book sed n the p 二 結尾 三 聯合定位 this is a test 四 點字元 用於匹配除換行符之外的任何乙個單一字元 五 字元類 定義一類字元,用於匹配文字模式中的某一位置 例如 echo n ch at p data the cat is sl...