一、正規表示式:
元字元是用來闡釋字元表示式意義的字元,簡言之,就是用來描述字元的字元。
正規表示式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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...