Linux 正則表達式基礎

一、正則表達式簡介

正則表達式是計算機科學的一個概念。

正則表達式使用單個字元串來描述、匹配一系列匹配某個句法規則的字元串。

在很多文本編輯器里,正則表達式通常被用來檢索、替換那些匹配某個模式的文本。

摘自:維基百科

正則表達式在 Linux 系統中無處不在,日常使用的很多命令(如 grepawk)也跟正則表達式脫不開關係。

正則表達式對於某些人來說確實難以理解。

我也只能說:多練吧!想學好的東西,一定可以學會的!

?? 注意

在學習過程中,一定要區分好正則表達式與通配符的關係。千萬不要弄混!

本文為個人學習筆記,僅供參考。如有錯誤請及時提出,謝謝!


二、正則表達式中的字元

正則表達式分為普通字元和元字元兩種字元。

形如 ab1 這些字元均屬於普通字元,只存在字面上的含義,沒有隱含的意義。

為了方便大家理解,下文中的普通字元均使用空心 ?? 或實心 ?? 的小方格來表示。

元字元是指在正則表達式有著特別意義的字元,比如美元符號 $ 表示行尾。

如果需要把元字元當作普通字元來看,請在元字元前面加一個反斜杠 {}<> 除外)。

另外,在 SHELL 中使用正則表達式時,最好將正則表達式用單引號括起來,以免正則表達式中的某些字元被 SHELL 視為元字元而影響操作。


三、基本正則表達式

所有支持正則表達式的程序都兼容基本正則表達式。

四、POSIX 標準正則表達式

POSIX 正則表達式用來匹配字符集中的其中一個字元,它主要用來消除不同字元編碼之間的差異。

比如說某種字元編碼,它的英文字元排序是 ABCDE...,那麼此時可以使用 [A-Z] 來匹配任意一個大寫字母。

那如果某種字元編碼,它的英文字元排序是 AaBbCc...,那麼此時想匹配一個大寫字母就不能再使用 [A-Z] 了。


五、擴展正則表達式

擴展正則表達式僅在部分程序中支持,例如 egrepawk 等。

六、區分:通配符

這裡說一下通配符的用法,大家好好區分一下。


推薦閱讀:

linux那麼多shell命令,包含了很多參數,這些參數有沒有規律可循?是否有些參數固定表示什麼含義?
學習VxWorks系統,如何入門?相比Linux,它有何優勢?

TAG:Linux | Linux入门 | 正则表达式 |