正則表達式(grep命令下的匹配)


基本正則表達式:REGular EXPression(REGEXP)



一、元字符:

  1. .  :匹配任意單個字符;

  2. [] :匹配指定範圍內的任意單個字符;

  3. [^]:匹配指定範圍外的任意單個字符。

PS:常用字符集合

    [:digit:] —— 數字集合

    [:lower:] —— 小寫字母集合

    [:upper:] —— 大寫字母集合

    [:space:] —— 空格

    [:alpha:] —— 所有字母集合

    [:alnum:] —— 所有字母和數字集合



二、次數匹配:

  1. * : 匹配其前面的字符任意次;

  2. .* :匹配任意長度的任意字符;

  3. \? :匹配其前面的字符至少一次 ; 

  4. \{m,n\}:匹配其前面的字符至少m次,最多n次。

PS:正則表達式默認情況工作在貪婪模式下,即匹配符合表達式的最大長度字符串。


三、位置錨釘:

  1. ^ :錨釘行首,此字符後面的內容必須出現在行首;

  2. $ :錨釘行尾,此字符前面的內容必須出現在行尾;

  3. ^$:空白行(錨釘剛開始就結束的行);

  4. \<或\b:錨釘詞首,其後面的任意字符必須作爲單詞(非英語意義上的單詞)首部出現;

  5. \>或\b:錨釘詞尾,其前面的任意字符必須作爲單詞(非英語意義上的單詞)尾部出現。

    例如:\<root\>匹配root這個單詞。


四、分組:

  1. \(\):匹配分組內容,將小括號中的內容作爲一個整體去匹配。

    例如:\(ab\)*表示匹配“ab”任意次。

  2. 後向引用(有人也稱爲前向引用):在使用分組的前提下使用。

    \1 —— 引用第一個左括號以及與之對應的右括號所包含的所有內容(無論是否出現括號嵌套)

    \2 —— 引用第二個左括號以及與之對應的右括號所包含的所有內容(同上)

    \3 —— ...(依次類推)...

    例如以下三行內容:

        He like his liker.

        She love her lover.

        He like her lover.

    表達式:l..e  可以匹配每一行;

    表達式:\(l..e\).*\1  只能匹配前兩行。




擴展正則表達式:(區別於基本正則表達式)



  1. ? :次數匹配,匹配其前面的字符最多一次(注意:此處前面沒有\);

  2. + :次數匹配,匹配其前面的字符至少一次(注意:基本正則表達式沒有此元字符);

  3. {m,n}:次數匹配,用法同基本正則表達式 (花括號前面不需要使用\);

  4. ():分組,真正意義上的分組(不需要使用\),同樣支持後向引用;

  5. | :或者。例如:a|b 匹配a或者b,C|cat 匹配C或者cat(匹配整個左邊或右邊)。



over.


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