linux初學習之正規表示式和萬用字元

2021-07-08 15:44:49 字數 1569 閱讀 2751

一、正規表示式:

元字元是用來闡釋字元表示式意義的字元,簡言之,就是用來描述字元的字元。

正規表示式re(regular expression)是由一串字元和元字元構成的字串。

正規表示式的主要功能是文字查詢和字串操作,它可以匹配文字的乙個字元或字元集合。實際上正規表示式完成了資料的過濾,將不滿足正規表示式定義的資料拒絕掉,剩下與正規表示式匹配的資料。

基本的正規表示式元字元集合及其意義符號

意義*0個或多個在*字元之前的那個普通字元

.匹配任意字元

^匹配行首,或後面字元的非

$匹配行尾

匹配字元集合

\轉義符,遮蔽乙個元字元的特殊意義

\<\>

精確匹配符號

\匹配前面字元出現n次  p.43

\匹配前面字元至少出現n次

\匹配前面字元出現n~m次

1.「*」符號

zha*ng  :「*」前面的普通字元是a,就表示匹配a字元0次或多次,如:zhng、zhang、zhaaaang

(根據測試可以不包括前面的字元,即匹配0次)

2.匹配空行

匹配行首的^和匹配行尾的$組合起來「^$」可以用來匹配空行,如果需要匹配只包含乙個字元的行,可以用「^.$」

3.""符號

匹配字元集合,支援窮舉方法列出字元集合的所有元素,也支援使用「-」符號表示字元集合範圍。

[12345] 等價於 [1-5]

我們知道「^」符號表示匹配行首,但是,「^」符號放到「」符號中就不再表示匹配行首了,而是表示取反符號。

[^b-d]  :表示不再b~d範圍內的字元

[a-za-z] [a-za-z]*  :匹配任意英文單詞

二、正規表示式的擴充套件:

擴充套件的正規表示式元字元及其意義符號

意義?匹配0個或乙個在其之前的那個普通字元

+匹配乙個或多個在其之前的那個普通字元

()表示乙個字元集合或用在expr中

|表示「或」,匹配一組可選的字元

1.「?」符號

(根據測試可以不包括前面的字元,即匹配0次)

2."()"符號和「|」符號

"()"符號和「|」符號通常結合使用,表示一組可選字元的集合。

re(a|b|c)d  等價於  re[abc]d

"|"符號也可以表示多個正規表示式的「或」關係。

grep -e 「zha?ng|zhi」  檔案

三、萬用字元:

bash shell本身不支援正規表示式,使用正規表示式的是shell命令和工具,如grep,sed,awk。

bash shell可以使用正規表示式中的一些元字元實現通配(globbing)功能。

通配是把乙個包含萬用字元的非具體檔名擴充套件儲存在計算機,伺服器或者網路上的一批具體檔名的過程。(可以看出通配主要應用匹配檔名上,而正則主要應用於字串上)

最常用的萬用字元包括正規表示式元字元:?、*、、{}、^等。

符號意義

*任意位的任意字元

?乙個任意字元^取反

1.「{}」符號

表示一組表示式的集合。如:

正規表示式初學

今天第一次真正好好學了下這個正規表示式,還是看的鳥哥私房菜,感覺收穫很大啊,閒話不多說了。下面是re字元的使用 word 待搜尋的字元word在字串首行 範例 搜尋首行為 開始的那一行,並列出行號 grep n a.txt word 待 搜尋的字元word在字串行尾 範例 將行尾為!的那一行列印出來...

初學正規表示式

初識正則 剛聽到正規表示式,很懵,正規表示式,數學公式?那和python有什麼關係。總之,一聽名字就知道不簡單。1.正規表示式 又稱規則表示式,所謂正規表示式,就是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元 及這些特定字元的組合,組合乙個 規則字串 這個 規則字串 用來表達對字串的一種...

Linux學習之正規表示式

正規表示式用於查詢,替換等字串處理。grep用於整個資訊的抓取,sed以行為單位處理,awk以列為單位處理 grep n the filename.txt 搜尋字串the,並顯示行號 grep vn the filename.txt 搜尋不包含字串the,並顯示行號 grep n t ae st f...