基礎正規表示式字元及用法

2021-08-17 20:40:49 字數 2873 閱讀 6692

一、什麼是正規表示式

三、grep的一些高階引數

eg:用dmesg列出核心資訊,用grep找出內含eth的那行。

四、基礎正規表示式字元(例子見下文)

1、待查詢的字串(word)在行首

re字元:^word

範例 :查詢行首為#開始的那一行,並列出行號(grep 後帶 -n 的作用)

命令 :grep -n '^#' regular_express.txt

2、待查詢的字串(word)在行尾

re字元:word$

範例 :將行尾為!的那一行列印出來,並列出行號

命令 :grep -n '!$' regular_express.txt

3、代表一定有乙個任意字元的字元

re字元:.

範例  :查詢的字串可以是(eve)(eae)

(eee)

(e e),但不能有(ee)!即e與e中間一定「有且僅有」乙個字元,而空格也是字元

命令 :grep -n 'e.e' regular_express.txt

4、轉義字元,將特殊符號(比如^  $  .  \  *  [  ]

等等)的特殊意義去除

re字元:\

範例  :查詢含有單引號'的那一行

命令 :grep -n '\'' regular_express.txt    #注意\後面是兩個單引號,而非乙個雙引號

5、重複零個到無窮多個的前乙個

字元re字元:*

範例 :找出含有(es)(ess)

(esss)等的字串,注意,因為*可以是0個,所以 es 也是符合待查詢字串。另外,因為 * 為重複「前乙個re字元」的符號,因此,在*之前必須緊接著乙個re字元。例如任意字元則為".*

"(注意星號前面是乙個英文句號,因為英文句號代表「有且僅有乙個任意字元」)。

命令 :grep -n 'ess*' regular_express.txt     #

因為*可以是0個,所以 es 也是符合待查詢字串

6、從字元集合的re字元裡面找出想要選取的字元

re字元:[list]

範例:查詢含有(gl)或(gd)的那一行,需要特別留意的是,在當中代表乙個

待查詢的字元,例如"a[afl]y"代表查詢的字串可以是aay、afy、aly,即[afl]代表的是a或f或l的意思。

命令 :grep -n 'g[ld]' regular_express.txt

7、從字元集合的re字元裡面找出想要選取的字元範圍

re字元:[n1-n2]

範例:查詢含有任意數字的那一行。需要特別注意的是,在字元集合[ ]中的減號-是有特殊意義的,它代表兩個字元之間的所有連續字元。但這個連續與否與ascii編碼有關,因此,你的編 碼需要設定正確(在bash當中,需要確定lang與language的變數是否正確)!例如所有大寫字元則為[a-z]。

命令      :grep -n '[0-9]' regular_express.txt   #

查詢含有任意數字的那一行

grep -n '[a-z]' regular_express.txt  #

查詢含有任意大寫字母的那一行

8、從字元集合的re字元裡面找出不要的字串或範圍

re字元:[^list]

範例 :查詢的字串可以是(oog)(ood)但不能是(oot),那個^在[ ]內

代表的意義是」反向選擇「的意思。例如,我不要大寫字母,則為[^a-z]。但是,需要特別注意的是,如果以 grep -n [^a-z] regular_express.txt 來查詢,卻發現該檔案內的所有行都被列出,為什麼?因為這個[^a-z]是」非大寫字元「的意思,因為每一行均有非大寫字母。

命令      :grep -n 'oo[^t]' regular_express.txt

9、連續n到m個的前乙個

re字元,若為\則是連續n個的前乙個re字元,若為\則是連續n個以上的前乙個re字元

re字元:\

範例 :在g與g之間有2個到3個的o存在的字串,即(goog)(gooog)

命令 :grep -n 'go\g' regular_express.txt

五、基礎正規表示式練習

我們用例題感受理解一下正規表示式。

例題1、查詢特定字串

不論大小寫的「the」這個字串

但是,不想要前面有g的話,可以利用在集合字元的反向選擇[^]來完成:

可以注意到,

那麼行尾呢?查詢

因為

查詢字串開頭結尾都是g的:

正規表示式基礎用法

正規表示式 regular expression 描述了一種字串匹配的模式 pattern 可以用來檢查乙個串是否含有某種子串 將匹配的子串替換或者從某個串中取出符合某個條件的子串等。字元含義示例 匹配任意長度的字串 匹配長度為1的字串 匹配除換行符以外的任意字元 匹配字串 一行 的開始 匹配字串 ...

正規表示式基礎用法

參考文件 正規表示式必知必會 ben forta著 楊濤譯 一 正規表示式用途 搜尋和替換 正規表示式是用來匹配和處理文字的字串 二 元字元分為兩種,一種匹配文字的 例如.一種是正規表示式語法所要求的 例如 這些元字元要匹配自己本事需要轉義 空白元字元 貪婪型 元字元,進行匹配時是 多多益善而不是適...

常見正規表示式字元用法

元字元 描述將下乙個字元標記符 或乙個向後引用 或乙個八進位制轉義符。例如,n 匹配 n。n 匹配換行符。序列 匹配 而 則匹配 即相當於多種程式語言中都有的 轉義字元 的概念。匹配輸入字串的開始位置。如果設定了regexp物件的multiline屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的...