Linux面試指令 正規表示式

2021-08-29 18:36:38 字數 1753 閱讀 2163

正規表示式是一種符號表示法,被用來識別文字模式。在某種程度上,它們與匹配檔案和路徑名的 shell 萬用字元比較相似,但其規模更大。許多命令列工具和大多數的程式語言都支援正規表示式,以此來幫助解決文字操作問題。

正規表示式元字元由以下字元組成:

^ $ . [ ] - ? * + ( ) | \

正規表示式

描述示例

^行起始標記

^shiyan匹配以shiyan起始的行

$行尾標記

$shiyan匹配以shiyan結尾的行

.匹配任意乙個字元(除了換行符)

a.c匹配abc,aac,但不匹配abbc

[ ]匹配包含在[字元]之中的任意乙個字元

ab[cd]匹配abc或abd

[ ^ ]

匹配除[^字元]之外的任意乙個字元

1[^01]匹配12、13,但不匹配10,11

[ - ]

匹配[ ]指定範圍內的任意乙個字元

[1-5]匹配1-5的任意乙個數字

匹配之前的項n次

[0-9]匹配任意乙個兩位數,相當於[0-9][0-9]

之前的項至少需要匹配n次

[0-9]匹配任意乙個兩位或更多為的數字

指定以前的項需要匹配的最小和最大次數

[0-9]匹配從兩位數到五位數之間的任意乙個數字

?匹配之前的項1次或者0次

shiy?an匹配shiyan或shian

*匹配之前的項0次或者多次

shiy*an匹配shian、shiyan、shiyyan

+匹配之前的項1次或者多次

shiy+an匹配shiyan、shiyyan

()建立乙個用於匹配的子串

ma(in)?匹配ma或main

|匹配 | 兩邊的任意一項

dec (1st | 2nd) 匹配 dec 1st 或者 dec 2nd

\將上面的特殊字元進行轉義

a\+b 匹配 a+b

(1)常用範例

例一:利用 linux 系統自帶的字典查詢乙個五個字母的單詞,第三個字母為 j,最後乙個字母為 r ,/usr/share/dict 目錄下存放字典檔案,可以使用如下命令:

例二:驗證固定**,列印符合條件的**,固定**格式基本都是帶有 0 的區號+連線符「-」+**號碼,另外還有可能有分機號,區號有 3 位、4 位,**號碼有 7 位和 8 位的,可以使用如下命令:

grep "^0[0-9]-[0-9](-[0-9])?$" telphone.txt
區號:前面乙個 0,後面跟 2-3 位數字 : 0[0-9]

**號碼:7-8 位數字: [0-9]

分機號:一般都是 3-4 位數字: [0-9] 

注意執行下面的命令時沒有任何匹配輸出,這是因為沒有加-e 選項,那例一沒加為什麼可以呢,這是因為 grep 把.當成 shell 萬用字元,不是正規表示式的元字元。

linux 命令 正規表示式

1.cut擷取以 分割保留第七段 grep hadoop etc passwd cut d f7 2.排序 du sort n 3.查詢不包含hadoop的 grep v hadoop etc passwd 4.正則表達包含hadoop grep hadoop etc passwd 5.正則表達 點...

grep命令 正規表示式

linux系統中grep是一種強大的文字搜尋工具,按照關鍵字或正規表示式過濾文字,並把匹配的行列印出來。grep的全稱是global regular expression print,表示的是全域性正規表示式版本,使用許可權時所有使用者。e 在擴充套件正則模式下 p 在perl正則模式下 v 將不匹...

Shell命令 正規表示式

正規表示式是包含匹配,萬用字元是完全匹配 基礎正規表示式 test.txt示例檔案12 3456 78910 1112 mr.james said he was the honestmanincompanyy.123despire him.but since miss.mary came,she n...