Linux Regex基礎

來源:互聯網
上載者:User

Linux Regex基礎
一、Regex簡介

Regex是電腦科學的一個概念。
Regex使用單個字串來描述、匹配一系列匹配某個句法規則的字串。
在很多文字編輯器裡,Regex通常被用來檢索、替換那些匹配某個模式的文本。
摘自:維基百科

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

Regex對於某些人來說確實難以理解。

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

️ 注意
在學習過程中,一定要區分好Regex與萬用字元的關係。千萬不要弄混!
本文為個人學習筆記,僅供參考。如有錯誤請及時提出,謝謝!

二、Regex中的字元

Regex分為一般字元和元字元兩種字元。

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

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

元字元是指在Regex有著特別意義的字元,比如貨幣符號 $ 表示行尾。

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

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

三、基本Regex

所有支援Regex的程式都相容基本Regex。

Regex 含義
匹配 本身
. 匹配任意一個字元
︎* 匹配任意多個 (包括 0 個)
[︎︎] 匹配 (字元集中的任意一個字元)
[^︎︎] 匹配除 (字元集中的任意一個字元)以外的任意一個字元
[A-Z] 匹配一個大寫字母(小寫字母、數字同理,也可取反)
^ 匹配行首
$ 匹配行尾
︎\{m\} 匹配 m 個
︎\{m,n\} 匹配 m 至 n 個
︎\{m,\} 匹配至少 m 個
\<︎︎︎︎\> 精確匹配 ︎︎︎︎ 這個單詞

代表性例子

Regex 可匹配
gooo*gle googlegoooogle
c.t cutcat
aa.*bb aabbaavvsfbb
^$ 一個空行
\<SSR\> SSR
四、POSIX 標準Regex

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

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

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

Regex 含義
[[:alnum:]] 匹配一個數字或字母
[[:alpha:]] 匹配一個字母
[[:digit:]] 匹配一個數字
[[:upper:]] 匹配一個大寫字母
[[:lower:]] 匹配一個小寫字母
[[:blank:]] 匹配一個空格或 Tab
[[:print:]] 匹配一個可列印字元
五、擴充Regex

擴充Regex僅在部分程式中支援,例如 egrepawk 等。

Regex 含義
︎|︎ 匹配
︎? 匹配 0 個或 1 個
︎+ 匹配至少 1 個
︎{m} 匹配 m 個
︎{m,n} 匹配 m 至 n 個
︎{m,} 匹配至少 m 個
(︎︎︎︎) 匹配 ︎︎︎︎ 這個字串

代表性例子

Regex 可匹配
A|B BOOAAB
goo+gle googlegoooogle
(SS) SSSSR
六、區分:萬用字元

這裡說一下萬用字元的用法,大家好好區分一下。

萬用字元 含義
* 匹配任意數量的任一字元
? 匹配 1 個 任一字元
[︎︎] 匹配 (字元集中的任意一個字元)
[^︎︎] 匹配除 (字元集中的任意一個字元)以外的任意一個字元
[A-Z] 匹配一個大寫字母(小寫字母、數字同理,也可取反)
{︎,︎} 匹配括弧內 (兩個或多個字串)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.