規則運算式,又稱正規標記法、常規標記法(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。規則運算式使用單個字串來描述、匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,規則運算式通常被用來檢索、替換那些符合某個模式的文本。

grep global search regular expression=\'#\'" ) and print out the line,全面搜索規則運算式並把行列印出來)是一種強大的文本搜索工具,它能使用規則運算式搜索文本,並把匹配的行列印出來。Unixgrep家族包括grepegrepfgrep。這裡僅對grepegrep做簡要示例。

 

基本格式:

grep [OPTIONS] PATTERN [FILE...]

grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

常用命令:

 

-v: 反向,顯示不能被模式所匹配到的行;

-o: 僅顯示被模式匹配到的字串,而非整行;

-i: 不區分字元大小寫, ignore-case

-A #:之後的幾行字元

-B:之前的幾行字元

-n: 顯示匹配行及行號,在顯示出內容的每行前面會顯示行數

 

基本格式:

“^”錨定行的開始 如:'^grep'匹配所有以grep開頭的行。

“$”錨定行的結束 如:'grep$'匹配所有以grep結尾的行。

“.”匹配一個非分行符號('\n')的字元如:'gr.p'匹配gr後接一個任意字元,然後是p。

“*”匹配零個或多個先前字元 如:' *grep' (注意*前有空格)匹配所有零個或多個空格後緊跟grep的行,需要用egrep 或者grep帶上 -E 選項。 .*一起用代表任意字元。“

“[]”匹配一個指定範圍內的字元,如'[Gg]rep'匹配Grep和grep。

“[^]”匹配一個不在指定範圍內的字元,如:'[^A-FH-Z]rep'匹配不包含A-F和H-Z的一個字母開頭,緊跟rep的行。

“\(..\)”標記匹配字元,如'\(love\)',love被標記為1。

“\<”錨定單詞的開始,如:'\<grep'匹配包含以grep開頭的單詞的行。

“\>”錨定單詞的結束,如'grep\>'匹配包含以grep結尾的單詞的行。

“x\{m\}”重複字元x,m次,如:'o\{5\}'匹配包含5個o的行。

“x\{m,\”}重複字元x,至少m次,如:'o\{5,\}'匹配至少有5個o的行。

“x\{m,n\}”重複字元x,至少m次,不多於n次,如:'o\{5,10\}'匹配5--10個o的行。

“\w”匹配文字和數位字元,也就是[A-Za-z0-9],如:'G\w*p'匹配以G後跟零個或多個文字或數位字元,然後是p。

單詞鎖定符,如: '\bgrep\b'只匹配grep。

用於egrep和 grep -E的元字元擴展集

“+”匹配一個或多個先前的字元。如:'[a-z]+able',匹配一個或多個小寫字母後跟able的串,如loveable,enable,disable等。

“?”匹配零個或一個先前的字元。如:'gr?p'匹配gr後跟一個或沒有字元,然後是p的行。

“a|b|c”匹配a或b或c。如:grep|sed匹配grep或sed

“()”分組符號,如:love(able|rs)ov+匹配loveable或lovers,匹配一個或多個ov。

x{m},x{m,},x{m,n}

[[:alnum:]] 匹配任何一個字母或數位([A-Za-z0-9])

[[:alpha:]] 匹配任何一個字母([A-Za-z])

[[:lower:]] 匹配任何一個小寫字母([a-z])

[[:upper:]] 匹配任何一個大寫字母([A-Z])

[[:space:]] 任何一個空白字元:定位字元、空格

[[:punct:]] 任何一個標點符號(不包括:[:alnum:]、[:cntrl:]、[:space:]字元集)

 

egrep:egrep為grep的拓展形式,功能比grep強大。比如:grep 不支持 a|b 或 (abc|xyz) 這類", 但是 egrep 支持. grep 在處理 {n,m} 時, 需用 \{ 與 \} 處理, 但 egrep 則不需.

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料