【轉】LinuxRegex使用指南

來源:互聯網
上載者:User

標籤:

Regex是一種符號標記法,用於識別文字模式。Linux處理Regex的主要程式是grep。grep搜尋與Regex匹配的,並將結果輸送至標準輸出。

1. grep匹配模式

grep按下述方式接受選項和參數(其中,regex表示Regex)

1 grep [options] regex [files]

其中options主要為下表:

選項 含義 功能描述
-i ignore case 忽略大小寫
-v invert match 不匹配匹配的
-l file-with-match 輸出匹配的檔案名稱
-L file-without-match 輸出不匹配的檔案名稱
-c count 輸出匹配的數目(行數)
-n number 輸出匹配行的同時在前面加上檔案名稱及在檔案名稱中的行數
-h no-filename 抑制檔案名稱的輸出

舉例說明

假設有三個檔案del1、del2、del3三個檔案的內容如下

例子

2. 特殊字元
符號 含義 舉例
^ 開始標記 “^abc”滿足的例子abc、abcd
^ 非(在[]內) “[^abc]“滿足的例子:ddd、mpd
$ 結束標記 ”abc$”滿足的例子abc、mmabc
. 任一字元 “a.c”滿足的例子abc、fapcc
\< 匹配單詞開始 “\<abc”滿足的例子abc、abcd
\> 匹配單詞結束 “abc\>”滿足的例子abc、pmrabc
| “AAA|BBB”滿足的例子AAA、BBBpp
3. 範圍
符號 含義 舉例
? 匹配前一個字元0或1次 “abc?”滿足的例子ab、mabcd
* 匹配前一個字元≥0次 “abc*”滿足的例子abbb、abcdk
+ 匹配前一個字元≥1次 “abc+”滿足的例子abcd、abcccdd
{} {m}、{m,n}、{m,}、{,n}分別為匹配前一個字元m次、m到n次、≥m次、≤n次 “abc\{3,5\}”滿足的例子abcccc、abcccccc
[] []內如果不是範圍,選其一;是範圍的話,範圍內選其一 “m[abc]p”滿足的例子acpd;m[1-9]p滿足的例子m8pp
() 將候選的所有元素放在()內,用|隔開 “a(1|2|3)bc”滿足的例子a1bc、mba3bcd

注意:{}在鄭則運算式中需要轉移,而{}()不需要。

注意理解{}範圍的例子:

4. 標準字元類
字元類 釋義
[:alnum:] 字母和數字,與[A-Za-z0-9]等價
[:word:] [:alnum:]加上底線_
[:alpa:] 字母,與[A-Za-z]等價
[:digit:] 數字,與[0-9]等價
[:xdigit:] 十六進位字元,與[0-9A-Fa-f等價]
[:blank:] 空格和定位字元
[:graph:] 可見字元,靠擴33~126
[:lower:] 小寫字母
[:upper:] 大寫字母
[:print:] 可列印字元
[:space:] 空白字元,等價於[\t\r\n\v\f]
[:punct:] 標點符號
[:cntrl:] ASCII控制碼,包括字元0~31以及127

例子

原文地址:http://www.codeceo.com/article/linux-reg-usage.html

【轉】LinuxRegex使用指南

聯繫我們

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