Linux正則表達式grep

    正則表達式是一種符號表示法,用於識別文本模式。Linux處理正則表達式的主要程序是grep。grep搜索與正則表達式匹配的,並將結果輸送至標準輸出。css

1. grep匹配模式git

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

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 抑制文件名的輸出

舉例說明spa

假設有三個文件del一、del二、del3三個文件的內容以下regexp

例子blog

2. 特殊字符get

符號 含義 舉例
^ 開始標記 "^abc"知足的例子abc、abcd
^ 非(在[]內) "[^abc]"知足的例子:ddd、mpd
$ 結束標記 」abc$」知足的例子abc、mmabc
. 任意字符 "a.c"知足的例子abc、fapcc
\< 匹配單詞開始 "\<abc"知足的例子abc、abcd
\> 匹配單詞結束 "abc\>"知足的例子abc、pmrabc
| "AAA|BBB"知足的例子AAA、BBBpp

3. 範圍it

符號 含義 舉例
? 匹配前一個字符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

注意:{}在鄭則表達式中須要轉移,而{}()不須要。    io

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

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

例子

 

可視化正則表達式

工具:Regexper