正規表示式

2021-07-06 05:43:25 字數 1602 閱讀 8652

一、正規表示式:

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

正規表示式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.「{}」符號

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

學習小結,如有錯誤,望告知!共同學習,共同進步……

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

非負整數 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正規表示式 編寫正規表示式

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