linux正規表示式

2022-06-12 02:48:07 字數 1491 閱讀 2434

正規表示式(或稱regular expression,簡稱re)就是由普通字元(例如字元 a 到 z)以及特殊字元(稱為元字元)組成的文字模式。

該模式描述在查詢文字主體時待匹配的乙個或多個字串。

正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。簡單的說,正規表示式就是處理字串的方法,它是以行為單位來進行字串的處理行為, 正規表示式通過一些特殊符號的輔助,可以讓使用者輕易的達到搜尋/刪除/取代某特定字串的處理程式。vim、grep、find、awk、sed等命令都支援正規表示式。

常用正規表示式:

1、.代表任意單個字元, 如:/l..e/與包含乙個l,後跟兩個字元,然後跟乙個e的行相匹配 

? 匹配零個或乙個字元。如:'gr?p'匹配gr後跟乙個或沒有字元,然後是p的行

2、^代表行的開始。 ^love 如:與所有love開頭的行匹配

3、$代表行的結束。love$ 如:與所有love結尾的行匹配

那麼『^$』 就表示空行

4、[…]匹配括號中的字元之一

[abc] 匹配單個字元a或b或c

[123] 匹配單個字元1或2或3

[a-z] 匹配小寫字母a-z之一

[a-za-z] 匹配任意英文本母之一

[0-9a-za-z]匹配任意英文本母或數字之一

注意:上面標紅色的單個和之一,不管裡面多複雜,它的結果都是乙個字元!

可以用^標記做內的字首,表示除內的字元之外的字元。比如 搜尋oo前沒有g的字串的行. 應用 '[^g]oo' 作搜尋字串,^符號如果出現在的起始位置表示否定,但是在的其他位置是普通字元。[^ab^c] 匹配b或^或c或不是a的任意單個字元

5、* 用於修飾前導字元,表示前導字元出現0次或任意多次

如:'a*grep'匹配所有0個或多個a後緊跟grep的行。「.*」表示任意字串

6、\? 用於修飾前導字元,表示前導字元出現0或1次

a\? 匹配0或1個a

7、\+ 用於修飾前導字元,表示前導字元出現1或多次

a\+ 匹配1或多個a

8、\ 用於修飾前導字元,表示前導字元出現n至m次 (n和m都是整數,且na\ 匹配3至5個連續的a

\還有其他幾種形式:

\ 連續的n個前導字元

\ 連續的至少n個前導字元

9、\ 用於轉義緊跟其後的單個特殊字元,使該特殊字元成為普通字元

如:^\.[0-9][0-9] 對以乙個句點和兩個數字開始

例如:a* 匹配連續的任意(也包括0)個a

a\? 匹配0或1個a

a\+ 匹配1或多個a

a\ 匹配3至5個連續的a

\.* 匹配0或多個連續的. \.表示普通字元句點

10、|表示或 如: a|b|c 匹配a或b或c。如:grep|sed匹配grep或sed

11、(),將部分內容合成乙個單位組,比如 要搜尋 glad 或 good 可以如下 'g(la|oo)d'

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...

正規表示式 Linux

主要內容 1 正規表示式2 基礎3 擴充套件4 通配5 grep命令 正規表示式基礎 1 元字元 metacharacters 是用來闡釋字元表示式意義的字元,簡言之,元字元就是描述字元的字元,它用於對字元表示式的內容 轉換及各種操作資訊進行描述。正規表示式是由一串字元和元字元構成的字串,簡稱re ...

Linux正規表示式

正規表示式是一種符號表示法,用於識別文字模式。linux處理正規表示式的主要程式是grep。grep搜尋與正規表示式匹配的行,並將結果輸送至標準輸出。1.grep匹配模式 grep按下述方式接受選項和引數 其中,regex表示正規表示式 1 grep options regex files 其中op...