shell 正規表示式

2021-10-16 01:16:08 字數 1243 閱讀 9704

正規表示式的概念:正規表示式(或稱regular expression,簡稱re),是用於描述字元排列和匹配模式的一種語法規則。它主要用於字串的分割,匹配、查詢及替換操作。即正規表示式是一種文字模式,該模式描述在搜尋文字時要匹配的乙個或多個字串。

在正規表示式中,我們把用於匹配的特殊符號又稱作元字元。在shell中,元字 符又分為基礎元字元(bre)和擴充套件元字元(ere)。

注:"+"、"?"、"|"、"()"、"{}「等擴充套件元字元egrep命令或grep -e是支援的。grep命令在不加-e選項的情況下可以按如下格式寫:」+"、"?"、"|"、"()"、"{}"

1、* :前乙個字元匹配0次或任意多次

注意,"* 和萬用字元中的 "* 含義不同,它代表前乙個字元重複 0 次或任意多次。比如,"a*「並不是匹配"a"後面的任意字元,而是可以匹配所有內容,包括空白行。

「a*「代表匹配 0 個 a 或無數個 a,如果是匹配 0 個 a,也就是每個字元都會匹配,所以會匹配所有內容,包括空白行。所以"a*「這樣的正規表示式是沒有任何意義的。

如果這樣寫正規表示式"aa*」,則代表這行字串一定要有乙個 a,但是後面有沒有 a 都可以。也就是說,會匹配至少包含乙個 a 的行。

注:* 修飾的它前面的乙個字元a,而不是字串aa

如果正規表示式是"aaa*」,則會匹配最少包含兩個連續 a 的字串。

2、 「.」:匹配除換行符和回車符外的任意乙個字元

正規表示式」.「只能匹配乙個字元,這個字元可以是任意字元。

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

「^ $ 「則會匹配空白行。

如果不加」-n"選項,空白行是沒有任何顯示的;加入了」-n"能看到空白行的行號。

3、」[ ]「會匹配中括號中指定的任意乙個字元,注意只能匹配乙個字元。比如 [ao] 要麼匹配 a 字元,要麼匹配乙個 o 字元。

4、\ :轉義符

轉義符會取消特殊符號的含義。如果想要匹配使用」.「結尾的行,那麼正規表示式是 $ 是不行的,因為」.「在正規表示式中有特殊含義,代表任意乙個字元。所以需要在前面加入轉義符,如」 \ $」。

5、\ :表示其前面的字元出現 n 次

\ 中的 n 代表數字,這個正規表示式會匹配前乙個字元出現 n 次的字串。

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...