正規表示式

2021-06-22 01:02:09 字數 1703 閱讀 1211

正規表示式資料(時時更新)

正規表示式

正規表示式主要是用來描述乙個句法規則的模式。其實說的通俗一點,就是利用字元和元字元的組合,對一些符合既定句法的模式進行模糊匹配。它的主要功能是文字查詢和字串操作。

正規表示式的基本元素包括普通字元和元字元,在linux shell裡面,常用的正規表示式元字符集為:s=  \  \ },每乙個元字元都有自己在正規表示式中的含義,下面來介紹一下:

「 * 」符號:表示匹配前面乙個普通字元0次或多次。注意這裡是乙個普通字元,即如果是jo*b的話,那麼*就匹配字元「o」任意次,而不是匹配「jo」串。

「 . 」符號:表示匹配任意乙個字元。字元「 . "就表示乙個字元,這個字元可以是任意字元。例如字串 ...73 就表示前面3個字元為任意字元(包括空格),第4個和第5個字元分別是7和3。

「 ^ 」符號:表示匹配行首。例如:^cloud就表示匹配以cloud字串開頭的所有行。與上面匹配乙個字元不一樣,這裡匹配的是後面跟著的整個字串。

」 $ "符號:表示匹配行尾。例如:cloud$ 就表示匹配以cloud字串結尾的所有行。結合上面的匹配行首,^$表示匹配空行。

「  "符號:表示匹配方括號裡面的字符集中的乙個。例如:數字0-9中的任意乙個數字都滿足[0-9]這個表示式。值得注意的是,當^放在裡面的時候,^就不再表示行首,而是表示取反。如:[^7-9]則表示非7-9中的任意乙個數字才滿足這個表示式。

」 \ 「符號:是轉義字元。如果你寫的正規表示式裡面包括元字元,而你又想將它當做普通字元用的話,就要在前面加上轉義符號" \ "了。例如:\$就表示乙個普通字元」$"。

「\<\>"符號:表示精確匹配<>內的字元,」 \ 「是用來轉義<>這兩個字元的。例如:\表示匹配包含」the「的行,由於精確匹配,所以,」them「,」theory「這些單詞所在的行並不會被匹配到。

」\"符號:與" * "類似,表示匹配前面的乙個字元任意多次。但是「\」可以指定重複的次數,如\則表示重複前面的字元3次;\表示重複前面的字元至少3次;\表示重複3到5次。例如:jo\b則表示重複字元o三次,即jooob;jo\b則表示至少重複o三次,即jooob,joooob等都符合;\則匹配jooob,joooob,jooooob這幾個字串。

萬用字元初學的時候對於正規表示式和萬用字元的理解很模糊,兩個都是可以進行模糊匹配的,到底什麼時候用才是正規表示式,什麼時候用是萬用字元呢?其實,我們登入系統之後,系統的bash shell並不支援正規表示式的,也就是說,我們如果使用bash shell的某些命令時使用正規表示式,shell可能會認不出來,只有當我們使用類似grep,sed,awk等工具的時候才有效。所以,我們在使用bash shell的時候也想達到模糊匹配的目的的話,就要使用萬用字元了。

萬用字元是使用正規表示式的一些元字元來的,常用的元字符集:e=  ^ }。不過,這個萬用字元的元字元意義跟正規表示式裡面的不太一樣。例如:

「 * "字元不再表示匹配前面乙個字元任意多次,而是表示任意位置的任意字元。例如:phi*ip,則可以匹配philip,phillip,philsaip等開始三個是phi和結尾兩位是ip的任意字元。例如ls -l *.awk表示匹配以.awk結尾的所有檔案,*表示任意長度任意字元組合。

" ? 」字元才表示任意乙個字元。同正規表示式元字元的" . "

" {} 「字元不需要轉義。在{}表示的是表示式集合。如:ls -l 則表示列出所有以a-h字元開頭的.awk檔案的和以0開頭,後面接乙個任意字元的.pem檔案

" ^ "字元也不是表示行首,而是代表取反。

未完待續

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

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

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