在實(shí)際例子中學(xué)習(xí)正則表達(dá)式(高效率)
正則表達(dá)式簡介
正則表達(dá)式,又稱正規(guī)表示法、常規(guī)表示法。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計(jì)算機(jī)科學(xué)的一個(gè)概念。正則表達(dá)式使用單個(gè)字符串來描述、匹配一系列符合某個(gè)句法規(guī)則。在很多文本編輯器里,正則表達(dá)式通常被用來檢索、替換那些符合某個(gè)模式的文本。
最近整體學(xué)習(xí)了一下正則表達(dá)式的知識(shí),發(fā)現(xiàn)還是在例子中進(jìn)行學(xué)習(xí)效率比較高,接下來分享一下正則表達(dá)式的經(jīng)典例子并進(jìn)行相關(guān)知識(shí)點(diǎn)的總結(jié)。
例子1:匹配5-12位的數(shù)字:^\d{5,12}$
首先介紹兩個(gè)特殊符號(hào),^表示字串開頭,$表示字串結(jié)尾,這兩個(gè)用來限定匹配的范圍。接下來\d用來匹配一個(gè)數(shù)字,后面可以接一個(gè){},里面輸入數(shù)字。當(dāng)輸入一個(gè)數(shù)字時(shí),比如{3},表示對(duì)數(shù)字進(jìn)行3次匹配;當(dāng)輸入兩個(gè)數(shù)字如例子中那樣,表示匹配5-12次均可。
例子2:匹配以字母a開頭的單詞:\ba\w*\b
在正則表達(dá)式中可以直接使用字符來進(jìn)行匹配,比如使用a就表示匹配帶a字母的模式。\b表示字符的 邊緣。\w表示匹配除了空格以外的一切字符。在正則表達(dá)式中可以使用一些符號(hào)表示匹配多少次,其中*表示匹配0-N次,+表示匹配1-N次,?表示匹配0或1次。所以上面的例子中\(zhòng)w*表示a后面接著0或多個(gè)字符。因此整個(gè)模式匹配的就是以a開頭的字符。
例子3:匹配座機(jī)電話號(hào)碼:\(?0\d{2}[) -]?\d[8]
這個(gè)正則表達(dá)式匹配的是形如(010)88886666或者022-22334455這類的電話號(hào)碼。首先要注意,因?yàn)??等符號(hào)在正則表達(dá)式中都有特殊的意義,因此要使用真正的這類符號(hào)的時(shí)候需要進(jìn)行轉(zhuǎn)意。這個(gè)例子中最開始的\)?就表示(出現(xiàn)0次或1次。接下來是區(qū)號(hào),因?yàn)閰^(qū)號(hào)是3位數(shù)字并且開頭的數(shù)字必須為0,因此使用0\d{2}就可以完美匹配這個(gè)要求。然后是[]的使用。[]內(nèi)可以放入多個(gè)值,表示下一位匹配的是這其中字符中的一個(gè)。比如這里的[) -]?就表示匹配左括號(hào)、空格或者-中的一個(gè),匹配0次或1次。最后再使用\d{8}匹配8位數(shù)字即可符合要求。
例子4:匹配以ing結(jié)尾的單詞的前面部分:\b\w+(?=ing\b)
這里面使用了零寬斷言,零寬斷言中的(?=exp)表示匹配后面的要求的前面的部分。本例中的(?=ing\b)匹配的就是要以ing結(jié)尾的字符。
以上通過四個(gè)示例給大家介紹了正則表達(dá)式的知識(shí),非常不錯(cuò),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
javascript 正則表達(dá)式(二) 使用技巧說明
javascript 正則表達(dá)式(二) 使用技巧說明2010-05-05在Asp中用“正則表達(dá)式對(duì)象”來校驗(yàn)數(shù)據(jù)的合法性
在Asp中用“正則表達(dá)式對(duì)象”來校驗(yàn)數(shù)據(jù)的合法性...2007-03-03精通 JavaScript中的正則表達(dá)式手機(jī)整理 推薦
精通 JS正則表達(dá)式,想學(xué)習(xí)js正則表達(dá)式的朋友非常值得看,整理的比較不錯(cuò)。2009-10-10php正則之函數(shù) preg_replace()參數(shù)說明
php正則之函數(shù) preg_replace()參數(shù)說明...2007-03-03JavaScript正則表達(dá)式之后向引用實(shí)例代碼
正則表達(dá)式的幾種后向引用方法,以下是幾種比較經(jīng)典的應(yīng)用,感覺比vbscript的后向引用好多了。2008-06-06PHP 正則表達(dá)式效率 貪婪、非貪婪與回溯分析(推薦)
先掃盲一下什么是正則表達(dá)式的貪婪,什么是非貪婪?或者說什么是匹配優(yōu)先量詞,什么是忽略優(yōu)先量詞,好吧,下面通過實(shí)例給大家介紹下PHP 正則表達(dá)式效率 貪婪、非貪婪與回溯分析,一起看看吧2016-12-12