在實際例子中學習正規表示式(高效率)

給我任何的發表於2022-03-20

正規表示式,又稱正規表示法、常規表示法。下面小編給大家分享幾個例子給大家講下正規表示式知識,非常不錯,具有參考借鑑價值,需要的朋友可以參考下


 正規表示式簡介

正規表示式,又稱正規表示法、常規表示法。(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正規表示式使用單個字串來描述、匹配一系列符合某個句法規則。在很多文字編輯器裡,正規表示式通常被用來檢索、替換那些符合某個模式的文字。

最近整體學習了一下正規表示式的知識,發現還是在例子中進行學習效率比較高,接下來分享一下正規表示式的經典例子並進行相關知識點的總結。

例子1:匹配5-12位的數字:^\d{5,12}$

首先介紹兩個特殊符號,^表示字串開頭,$表示字串結尾,這兩個用來限定匹配的範圍。接下來\d用來匹配一個數字,後面可以接一個{},裡面輸入數字。當輸入一個數字時,比如{3},表示對數字進行3次匹配;當輸入兩個數字如例子中那樣,表示匹配5-12次均可。

例子2:匹配以字母a開頭的單詞:\ba\w*\b

在正規表示式中可以直接使用字元來進行匹配,比如使用a就表示匹配帶a字母的模式。\b表示字元的 邊緣。\w表示匹配除了空格以外的一切字元。在正規表示式中可以使用一些符號表示匹配多少次,其中*表示匹配0-N次,+表示匹配1-N次,?表示匹配0或1次。所以上面的例子中\w*表示a後面接著0或多個字元。因此整個模式匹配的就是以a開頭的字元。

例子3:匹配座機電話號碼:\(?0\d{2}[) -]?\d[8]

這個正規表示式匹配的是形如(010)88886666或者022-22334455這類的電話號碼。首先要注意,因為(?等符號在正規表示式中都有特殊的意義,因此要使用真正的這類符號的時候需要進行轉意。這個例子中最開始的\)?就表示(出現0次或1次。接下來是區號,因為區號是3位數字並且開頭的數字必須為0,因此使用0\d{2}就可以完美匹配這個要求。然後是[]的使用。[]內可以放入多個值,表示下一位匹配的是這其中字元中的一個。比如這裡的[) -]?就表示匹配左括號、空格或者-中的一個,匹配0次或1次。最後再使用\d{8}匹配8位數字即可符合要求。

例子4:匹配以ing結尾的單詞的前面部分:\b\w+(?=ing\b)

這裡面使用了零寬斷言,零寬斷言中的(?=exp)表示匹配後面的要求的前面的部分。本例中的(?=ing\b)匹配的就是要以ing結尾的字元。

以上通過四個示例給大家介紹了正規表示式的知識,非常不錯,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015106/viewspace-2877210/,如需轉載,請註明出處,否則將追究法律責任。

相關文章