linux正規表示式 Linux 的正規表示式

2021-10-12 05:46:07 字數 2470 閱讀 3414

我們通過sed或awk工具可以輕鬆愉快的對一堆文字分析、對資料進行處理、伺服器報錯日誌的分析、伺服器使用者訪問日誌統計分析等。

但是要玩耍好sed和awk工具,正規表示式是基礎,不得不掌握。

特定字元

如'1'、'a'、'a'

範圍字元
數字字元:[0-9],代表0到9數字中的任意乙個

小寫字元:[a-z],代表a到z字母中的任意乙個

大寫字元:[a-z],代表a到z字母中的任意乙個

特殊符號:[,._]

取反:[^0-9],代表除0到9數字外的任意乙個字元

任意字元

代表任意字元:'.'

注意:'[.]',代表普通的點(本身的含義),'.'也是代表普通的點(本身的含義)

頭尾字元,即以某個或多個字元開頭,或者是以某個或多個字元結尾

例如:^root 代表以這個單詞開始匹配root$ 代表以這個單詞結尾匹配^$ 代表空行

代表普通字元或特殊字元

\w 代表匹配任何字類字元,包括下劃線:[a-za-z0-9_]\w 代表匹配非任何字類字元,如:^[a-za-z0-9_]\b 代表單詞的分割符(即不在連續的單詞中間),如:'\bx'

* 代表零次或者多次匹配前面的字元或者子表示式如 'ab*' ,只對b重複'\(ab\)*' ,對ab重複也可用表示

+ 代表一次或者多次匹配前面的字元或者子表示式

如 'ab\+',只對b重複

也可用表示

?代表零次或者一次匹配前邊的字元或子表示式

如 'ab\?',只對b重複

也可用表示

重複特定次數: 重複最小n,最大m次

如 '[0-9]\'

任意字串的表示:.*

如:'^r.*'、'm.*c'//不僅匹配4個字元,開頭是m,結尾是c,但中間長度2個字元或以上

注意:'m..c' 只匹配4個字元,開頭是m,結尾是c

坑:貪婪的匹配,如:'\bm.*c\b'

更加精確的匹配,如:'\bm[a-z]*c\b'

| 或,如:'bin/(false\|true)'

(),如:'\(\)'{},如:'\'+,如:'\+'?,如:'\?'

|,如:'\|'

\,如:'\\'

1、匹配4-10位的qq號

'^[0-9]$'

2、匹配15位或18位身份證號(支援帶x的)

'^[1-9]([0-9]\|[0-9][0-9xx]$'

3、匹配密碼(由數字、26個字母和下劃線組成)

'^\w+$'

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...