linux中正則表達式的用法自解

  在馬哥這已經學習了等二個星期了,雖然每天都很累,但是收穫頗豐,這也許就是那種痛苦並快樂的感覺吧。第一次寫博客,不知道該怎麼開始,就先閒聊兩句,下邊言歸正傳。本次我們探討關於linux系統中關於正則表達式的作用、用法等內容一一講解。

正則表達式的作用

linux中,一切內容都是以文件形式出現的,而文件又保存在目錄下,文件內容等所有都是以字符串和數字,加一些符號組成的,這也就是說如果我們要匹配出一行字符串我們可以用到一些特殊字符表示爲不同的內容,比如“*”表示任意單個字符,“?”表示任意單個字符,在匹配複雜字符串時這些就顯得蒼白無力,所以我們迫切需要一個能精確匹配任意字符串的表達方式,而正則表達式就是在這個大背景下應運而生的,它解決了上述所有不能完成的功能,用各種特殊字符完美詮釋。

Grep命令

講到正則表達式,就不能不說到grep命令。正則表達式在grep命令中能完美運用,下邊我們來講grep命令。Grep命令是根據模式搜索文本,並將符合模式的文本行顯示出來,坦白說它是一個文本查找命令.下面說常用選項:

 選項

-E:使用擴展正則表達式,可以用egrep命令代替,下邊再講。

-A:顯示此行下n行,下同。

-B:顯示此行上n行。

-C:顯示此行下n行。

基礎正則表達式

Grep命令默認只可以使用基礎正則表達式,內容如下:

元字符:

.:任意單個字符

【】:匹配指定範圍內的任意單個字符

^:匹配字指定範圍外的任意單個字符

匹配次數:

*:匹配前面的字符任意次

.*:任意長度的任意字符

\?:匹配前邊的字符一次或零次

\{m,n\}:匹配前邊的字符至少m,至多n

位置錨定:

^:此字符後面的任意內容必須出現在行首

$:此字符後面的任意內容必須出現在行尾

^$:空白行

\<\b:其後面的任意字符必須作爲單詞首部出現

\>\b:其後面的任意字符必須作爲單詞尾部出現

 

分組

\(\):後向調用

\n:匹配前面n個括號內內容

Egrep命令

Egrep命令是grep –e命令的簡寫,其主要功能就是使用擴展正則表達式。其選項基本和grep命令一樣,這裏就不再說了。我們主要來說一下擴展正則表達式的內容。

擴展正則表達式

顧名思義,其爲基礎正則表達式的擴展形式,其很多內容都和基礎的一樣,下面我們來說說不一樣的內容。

 

次數匹配:

+:匹配其前邊的字符至少一次

{m,n}匹配其前內容至少m次,至多n

 

分組:

():分組

a|b:或者

 

這裏要說到擴展正則表達式中“.”用“\”表示。

 

 

寫到這裏正則表達式基本就講完了,說得簡單,真正要用真正表達式來精確匹配字符串還需要大家自己不斷嘗試。另外grep命令中還有fgrep命令,它不支持正則表達式,本次主講正則表達式,就不再講了。希望大家能從本文中有所幫助,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章