Shell 正則表達式


  • 正則表達式:可以過濾可以表達的行。正則表達式需要編輯工具來實現。

 

常用字符:

正則:“^n”                              #帶表以什么開頭。

正則:“n$”                              #代表以什么結尾。

正則:“^$”                              #代表空格。

正則:“.”                               #.代表左右吻合的任意一個字符如(r.t:root,rwwt)。

正則:“*”                               #*代表0個或多個任意一個字符。也可以用\?一個意思0個或一個。

正則:“.*”                              #代表包含左右都有並全部包含的如。(root,rootrsst)

正則:“字母\[3\]”                      #代表過濾次數。3代表次數。

正則:[^m]                              #非m的字符。

正則:+                                 #匹配+前字符1次或多次

 

正則表達式字符

^              # 行首定位                                                                     

$              # 行尾定位

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

*              # 匹配0或多個重復字符

+              # 重復一次或更多次

?              # 重復零次或一次

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

[]             # 匹配一組中任意一個字符

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

\              # 用來轉義元字符

<              # 詞首定位符(支持vi和grep)  <love

>              # 詞尾定位符(支持vi和grep)  love>

x\{m\}         # 重復出現m次

x\{m,\}        # 重復出現至少m次

x\{m,n\}       # 重復出現至少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,並捕獲文本到自動命名的組里

(?<name>exp)        # 匹配exp,並捕獲文本到名稱為name的組里,也可以寫(?'name'exp)

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

 

零寬斷言

(?=exp)              # 匹配exp前面的位置
(
?<=exp) # 匹配exp后面的位置
(
?!exp) # 匹配后面跟的不是exp的位置
(
?<!exp) # 匹配前面不是exp的位置
(
?#comment) # 注釋不對正則表達式的處理產生任何影響,用於注釋


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM