掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流
正則表達式只是字符串的一種描述,只有和支持正則表達式的工具相結(jié)合才能進行字符串處理,本篇文中重點為大家講解一下grep正則表達式具體使用方法。

grep按下述方式接受選項和參數(shù)(其中,regex表示正則表達式)
?格雷普 [選項] 雷格克斯 [文件]?
其中options主要為下表:
選項 含義 功能描述
-i ignore case 忽略大小寫
-v invert match 不匹配匹配的
-l file-with-match 輸出匹配的文件名
-L file-without-match 輸出不匹配的文件名
-c count 輸出匹配的數(shù)目(行數(shù))
-n number 輸出匹配行的同時在前面加上文件名及在文件名中的行數(shù)
-h no-filename 抑制文件名的輸出
假設有三個文件del1、del2、del3三個文件的內(nèi)容如下
例子
在Linux中使用grep正則表達式入門在Linux中使用grep正則表達式入門
特殊字符
符號 含義 舉例
^ 開始標記 "^abc"滿足的例子abc、abcd
^ 非(在[]內(nèi)) "[^abc]"滿足的例子:ddd、mpd
$ 結(jié)束標記 ”abc$”滿足的例子abc、mmabc
. 任意字符 "a.c"滿足的例子abc、fapcc
\"\ 匹配單詞結(jié)束 "abc\>"滿足的例子abc、pmrabc | 或 "AAA|BBB"滿足的例子AAA、BBBpp
范圍
符號 含義 舉例
? 匹配前一個字符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
[] []內(nèi)如果不是范圍,選其一;是范圍的話,范圍內(nèi)選其一 "m[abc]p"滿足的例子acpd;m[1-9]p滿足的例子m8pp
() 將候選的所有元素放在()內(nèi),用|隔開 "a(1|2|3)bc"滿足的例子a1bc、mba3bcd
注意:{}在鄭則表達式中需要轉(zhuǎn)移,而{}()不需要。
注意理解{}范圍的例子:
標準字符類
字符類 釋義
[:alnum:] 字母和數(shù)字,與[A-Za-z0-9]等價
[:word:] [:alnum:]加上下劃線_
[:alpa:] 字母,與[A-Za-z]等價
[:digit:] 數(shù)字,與[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

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流