Linux 正則表達式基礎
一、正則表達式簡介
正則表達式是計算機科學的一個概念。
正則表達式使用單個字元串來描述、匹配一系列匹配某個句法規則的字元串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些匹配某個模式的文本。摘自:維基百科
正則表達式在 Linux 系統中無處不在,日常使用的很多命令(如 grep
、awk
)也跟正則表達式脫不開關係。
正則表達式對於某些人來說確實難以理解。
我也只能說:多練吧!想學好的東西,一定可以學會的!
?? 注意
在學習過程中,一定要區分好正則表達式與通配符的關係。千萬不要弄混!
本文為個人學習筆記,僅供參考。如有錯誤請及時提出,謝謝!
二、正則表達式中的字元
正則表達式分為普通字元和元字元兩種字元。
形如 a
、b
、1
這些字元均屬於普通字元,只存在字面上的含義,沒有隱含的意義。
為了方便大家理解,下文中的普通字元均使用空心 ??
或實心 ??
的小方格來表示。
元字元是指在正則表達式有著特別意義的字元,比如美元符號 $
表示行尾。
如果需要把元字元當作普通字元來看,請在元字元前面加一個反斜杠 (
{
、}
、<
、>
除外)。
另外,在 SHELL 中使用正則表達式時,最好將正則表達式用單引號括起來,以免正則表達式中的某些字元被 SHELL 視為元字元而影響操作。
三、基本正則表達式
所有支持正則表達式的程序都兼容基本正則表達式。
四、POSIX 標準正則表達式
POSIX 正則表達式用來匹配字符集中的其中一個字元,它主要用來消除不同字元編碼之間的差異。
比如說某種字元編碼,它的英文字元排序是 ABCDE...
,那麼此時可以使用 [A-Z]
來匹配任意一個大寫字母。
那如果某種字元編碼,它的英文字元排序是 AaBbCc...
,那麼此時想匹配一個大寫字母就不能再使用 [A-Z]
了。
五、擴展正則表達式
擴展正則表達式僅在部分程序中支持,例如 egrep
、awk
等。
六、區分:通配符
這裡說一下通配符的用法,大家好好區分一下。
推薦閱讀:
※linux那麼多shell命令,包含了很多參數,這些參數有沒有規律可循?是否有些參數固定表示什麼含義?
※學習VxWorks系統,如何入門?相比Linux,它有何優勢?