Shell程式設計之正規表示式

2021-10-23 13:43:46 字數 3333 閱讀 2940

目錄

正規表示式 概述

基礎正規表示式

「*」前乙個字元匹配 0 次,或任意多次

「.」 匹配除了換行符外任意乙個字元

「^」匹配行首,「$」匹配行尾

「」 匹配中括號中指定的任意乙個字元,只匹配乙個字元

「[^]」 匹配除中括號的字元以外的任意乙個字元

「\」 轉義符

「\」表示其前面的字元恰好出現 n 次

「\」表示其前面的字元出現不小於 n 次

「\」匹配其前面的字元至少出現 n 次,最多出現 m 次

擴充套件正規表示式

正規表示式綜合案例

其實這種區別只在 shell 當中適用,因為用來在檔案當中搜尋字串的命令,如 grep、awk、sed 等命令可以支援正規表示式,而在系統當中搜尋檔案的命令,如 ls、find、cp 這些命令不支援正規表示式,所以只能使用 shell 自己的萬用字元來進行匹配了。

元字元

作 用* 前乙個字元匹配 0 次或任意多次。 .

匹配除了換行符外任意乙個字元。 ^

匹配行首。例如:^hello 會匹配以 hello 開頭的行。

匹配中括號中指定的任意乙個字元,只匹配乙個字元。例如:[aoeiu] 匹配任意乙個母音字母,[0-9] 匹配任意一位數字,[a-z][0-9]匹配小寫字和一位數字構成的兩位字元。

[^]匹配除中括號的字元以外的任意乙個字元。例如:[^0-9] 匹配任意一位非數字字元,[^a-z] 表示任意一位非小寫字母。

\ 轉義符。用於取消講特殊符號的含義取消。 \

表示其前面的字元恰好出現 n 次。例如:[0-9]\ 匹配 4 位數字,[1][3-8][0-9]\ 匹配手機號碼。

\表示其前面的字元出現不小於 n 次。例如: [0-9]\ 表示兩位及以上的數字。

\表示其前面的字元至少出現n次,最多出現m次。例如:[a-z]\ 匹配 6 到 8 位的小寫字母。$

匹配行尾。例如:hello&會匹配以 hello 結尾的行。

#匹配在字母 s 和字母 i 之間有最少乙個 a,最多三個 a

[root@localhost ~]# grep "sa\i" test_rule.txt

#匹配在字母 s 和字母 i 之間有最少兩個 a,最多三個 a

【注】:參考尚矽谷沈超老師教程

shell程式設計之正規表示式

1 正規表示式 其實就是一種規範,也就是模式,約束字串等符合什麼樣的格式,比如要求字串必須a開頭,t結尾,符合這樣條件的字串就要用到正規表示式。2 兩套庫 gnu linux中有有兩套庫用足正規表示式程式設計,posix庫,自帶的 pcre庫,perl,功能比較全,本文採用perl。3 初體驗 eg...

Shell程式設計之正規表示式

1.萬用字元 2.正規表示式與萬用字元元字元作用 前乙個字元匹配0次或任意多次 匹配除了換行符外任意乙個字元 匹配行首。例如 hello會匹配以hello開頭的行 匹配行尾。例如 hello 會匹配以hello結尾的行 匹配中括號中指定的任意乙個字元,只匹配乙個字元 匹配除中括號的字元意外的任意乙個...

Shell程式設計之正規表示式總結

正規表示式 regular expression 是一種文字模式,描述了一種字串匹配模式。可以用來檢查乙個串是否包含有某種子串。在linux的shell程式設計中廣泛運用。正規表示式分為兩類 基本正規表示式 basic regular expression bre和擴充套件正規表示式 extende...