linux shellRegex

來源:互聯網
上載者:User

Linux Shell環境下提供了兩種Regex規則,一個是基本Regex(BRE),另一個是擴充Regex(ERE)。
    下面是這兩種運算式的文法列表,需要注意的是,如果沒有明確指出的Meta字元,其將可同時用於BRE和ERE,否則將盡適用於指定的模式。

正則元字元 模式含義 用例
\ 通常用於關閉其後續字元的特殊意義,恢複其原意。 \(...\),這裡的括弧僅僅表示括弧。
. 匹配任何單個字元。 a.b,將匹配abb、acb等
* 匹配它之前的0-n個的單個字元。 a*b,將匹配ab、aab、aaab等。
^ 匹配緊接著的Regex,在行的起始處。 ^ab,將匹配abc、abd等,但是不匹配cab。
$ 匹配緊接著的Regex,在行的結尾處。 ab$,將匹配ab、cab等,但是不匹配abc。
[...] 方括號運算式,匹配其內部任何字元。其中-表示連續字元的範圍,^符號置於方括弧裡第一個字元則有反向的含義,即匹配不在列表內(方括弧)的任何字元。如果想讓]和-表示其原意,需要將其放置在方括弧的首字元位置,如[]ab]或[-ab],如這兩個字元同時存在,則將]放置在首字元位置,-放置在最尾部,如[]ab-]。 [a-bA-Z0-9!]表示所有的大小寫字母,數字和驚嘆號。[^abc]表示a、b、c之外的所有字元。[Tt]om,可以匹配Tom和tom。
\{n,m\} 區間運算式,匹配在它前面的單個字元重複出現的次數區間,\{n\}表示重複n次;\{n,\}表示至少重複n次;\{n,m\}表示重複n到m次。 ab\{2\}表示abb;ab\{2,\}表示abb、abbb等。ab\{2,4\}表示abb、abbb和abbbb。
\(...\) 將圓括弧之間的模式儲存在特殊“保留空間”。最多可以將9個獨立的子模式儲存在單個模式中。匹配於子模式的文本,可以通過逸出序列\1到\9,被重複使用在相同模式裡。 \(ab\).*\1表示ab組合出現兩次,兩次之間可存在任何數目的任何字元,如abcdab、abab等。
{n,m}(ERE) 其功能等同於上面的\{n,m\},只是不再寫\轉義符了。 ab+匹配ab、abbb等,但是不匹配a。
+(ERE) 和前面的星號相比,+匹配的是前面Regex的1-n個執行個體。
?(ERE) 匹配前面Regex的0個或1個。 ab?僅匹配a或ab。
|(ERE) 匹配於|符號前後的Regex。 (ab|cd)匹配ab或cd。
[:alpha:] 匹配字母字元。 [[:alpha:]!]ab$匹配cab、dab和!ab。
[:alnum:] 匹配字母和數字字元。 [[:alnum:]]ab$匹配1ab、aab。
[:blank:] 匹配空格(space)和Tab字元。 [[:alnum:]]ab$匹配1ab、aab。
[:cntrl:] 匹配控制字元。
[:digit:] 匹配數字字元。
[:graph:] 匹配非空白字元。
[:lower:] 匹配小寫字母字元。
[:upper:] 匹配大寫字母字元。
[:punct:] 匹配標點字元。
[:space:] 匹配空白(whitespace)字元。
[:xdigit:] 匹配十六進位數字。
\w 匹配任何字母和數字組成的字元,等同於[[:alnum:]_]
\W 匹配任何非字母和數字組成的字元,等同於[^[:alnum:]_]
\<\> 匹配單詞的起始和結尾。 \<read匹配readme,me\>匹配readme。


    下面的列表給出了Linux Shell中常用的工具或命令分別支援的Regex的類型。

  grep sed vi egrep awk
BRE * * *
ERE * *

本文摘自:http://www.atatech.org/article/detail/2894/338

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.