天天看點

正規表達式基本用法

一個正規表達式是由普通字元和特殊字元組成的文字模式,将某個字元模式與所搜尋的字元串進行比對。簡單的說,就是用來搜尋比對的一個很好的工具。

 正規表達式分為:基本正規表達式和擴充正規表達式兩類

基本正規表達式的元字元如下:

  . :比對任意單個字元

   *:比對前一個字元的任意次

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

  []:指定範圍内的任意單個字元

  a\{m,n\}:a這個字元至少出現m次,最多出現n次

  a\{m,\}:a這個字元至少出現m次,

  a\{0,n\}:a這個字元最多出現n次

  ?:比對前一個字元出現0次或1其次

錨定符:

    ^:錨定行首

    $:錨定行尾

   ^$:錨定空白行

   \<:錨定詞首

   \>:錨定詞尾

引用:

  \(\) 

接下來給每個元字元配備一個例子

“.”

正規表達式基本用法

上圖“ . ” 比對任意單個字元,root,r/ft中的o、/、f,都屬于任意單個字元

“*”

正規表達式基本用法

上圖星号“*”比對b任意次,也可以是0次,如圖中的ac

“.*”

正規表達式基本用法

上圖是以r開頭t結尾,中間是任意字元

第一行開頭就是root,已經比對完了,但是最後又以t結尾,這個稱為貪婪模式,盡量比對到最長

正規表達式基本用法

上圖表示以r開頭以t結尾中間為任意小寫字母

    \{m,n\}

表示圖上b至少顯示1次,最多顯示兩次的行

\{m,\}

正規表達式基本用法

    上圖表示以r開頭t結尾,中間的小寫字母至少出現兩次的行

\{0,n\}

表示b至少出現0次,最後出現2次的行

grep的選項

    -v: 對結果去反

例: 

這個是空白至少出現1次的,圖中紅色标記都是空白

反之  -v  :grep  -v  "[[:space:]]\{1,\}"  /etc/passwd

^:

正規表達式基本用法

上圖中顯示以root開頭的行

$:

正規表達式基本用法

顯示以n結尾的行

^$:

正規表達式基本用法

顯示空白行

\<:

正規表達式基本用法

顯示以r開頭的單詞

\>:

顯示以r結尾的單詞

\(\):

正規表達式基本用法

上圖a為檔案    1用來比對括号裡的l..e  

表示以l..e開頭後面跟任意字元任意次,并且以r結尾的行

擴充正規表達式元字元:

    ( )

    {}

    +: 次數比對,比對其前的字元至少1次;

    |:或者 

注:使用擴充正規表達式格式必須為grep  -E  或者egrep 

( ):

正規表達式基本用法

和正規表達式中的\(\)效果一樣

{}:

正規表達式基本用法

    和\{m,\}效果一樣

+:

正規表達式基本用法

比對b至少出現一次

|:

正規表達式基本用法

顯示以d或D開頭的dog 

END 

繼續閱讀