正規表示式

2021-10-03 14:04:52 字數 1984 閱讀 8634

基於使用者指定的「模式」,對目標檔案逐行進行匹配檢查,列印匹配到的行,預設列印到終端視窗

模式:正規表示式元字元編寫出來的過濾條件

正規表示式:由一類特殊的字元以及文字字元所編寫的模式,並不代表字面含義,表達控制或者通配的功能

grep [options] pattern [file…]

grep [options] [-e pattern | -f file] [file…]

--color=auto:高亮顯示匹配到的文字

-i:忽略字元大小寫

-n:顯示行號

-e:支援使用擴充套件正規表示式

-o:列印匹配到的行

-v:顯示不能被匹配到的行

—a #:後幾行

-b #:前幾行

-c #:前後各幾行

元字元:

字元匹配

.:匹配任意單個字元

:[^]:

[[:lower:]]

匹配次數

用在要指定出現的次數的字元的後面,用來限制其前面字元出現的次數

*:匹配其前面的字元任意次。0次,1次或者多次

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

\?:匹配其前面的字元0次或者1次,最多一次

\+:匹配其前面的字元1次或者多次,至少一次

\:匹配其前面的字元m次  

\:匹配其前面的字元至少m次,至多n次

\:至多n次

\:至少m次

位置錨定

^:行首錨定,用於模式的最左側

$:行尾錨定,用於模式的最右側

^$:空白行

^[[:space:]]*$

^pattern$:用pattern來匹配整行

\《或者\b:詞首錨定,用於單詞的左側

\>或者\b:詞尾錨定,用於單詞的右側

\

練習:

1、顯示/etc/passwd檔案中不以/bin/bash結尾的行;

2、顯示/etc/passwd中的兩位數或者三位數

3、找出 netstat -tan 命令結果中以listen後跟乙個或者多個空白字元結尾的行

分組和引用

\(\):分組,將乙個或者多個字元**在一起當作乙個整體處理

\(xy\)\(mn\)\(zq\)*ab

xyab xyxyab ab xyxyxyxyxyab

引用分組括號內匹配的模式,會被正規表示式引擎記錄在內部變數中,通過變數進行應用

\1:模式從左側起,第乙個左括號與之匹配的右括號之間模式所匹配到的字元

\2: 模式從左側起,第二個左括號與之匹配的右括號之間模式所匹配到的字元

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

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

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