什么是正則表達(dá)式正則表達(dá)式就是用某種模式去匹配一類(lèi)字符串的一種公式,通谷的講,就是用一個(gè)“字符串”描述一個(gè)特征,然后驗(yàn)證另一個(gè)“字符串”是否符合這個(gè)特征的公式。
比如“ab+”描述的特征是:一個(gè)a和任意個(gè)b。那么ab,abb,abbbbbb都是符合這個(gè)特征,而字符串a(chǎn)d顯然是不符合的
正則表達(dá)式可應(yīng)用到各個(gè)方面,在常用的高級(jí)編輯器中,幾科都支持正則表達(dá)式,如word,vim等
正則表達(dá)式在編程語(yǔ)言中更是得到了大規(guī)模推廣。現(xiàn)在的語(yǔ)言幾科都是原生的,都可以從語(yǔ)法上支持正則表達(dá)式,尤其在perl的扒動(dòng)下,php,java.net,javascript等語(yǔ)言都支持有正則語(yǔ)法。
PHP中的正則函數(shù)正則表達(dá)式看起來(lái)總是那么古怪,以至于許多人對(duì)其望而生畏。首先要澄清一些概念:雖然不同語(yǔ)言間正則語(yǔ)法大同小異,但實(shí)際上正則表達(dá)式的實(shí)現(xiàn)有多種引擎(如非確定性有窮自動(dòng)機(jī)NFA,確定性有窮自動(dòng)機(jī)DFA),其表現(xiàn)又有多種風(fēng)格(如javascript有自己的樸素正則,Perl有一套高級(jí)而強(qiáng)大的正則,。Net也有自己的一套正則風(fēng)格)。另外,還有人可能容易混淆PHP中的preg和ereg
簡(jiǎn)單的說(shuō),PHP中有兩套則函數(shù),兩者功能著不多:
由PCRE庫(kù)提供的函數(shù),以“Preg_”為前綴命名 PCRE(PERL Compatible Regular Expression)由Philip Hazel于1997年開(kāi)發(fā),現(xiàn)代的編程語(yǔ)言和軟件中一般都使用PCRE庫(kù)
由poSIX擴(kuò)展提供的函數(shù),以“ereg_”為前綴命名。POSIX由一系列規(guī)范構(gòu)成,定義了UNIX操作系統(tǒng)應(yīng)用支持的功能,所以”POSIX”風(fēng)格的正則表達(dá)式也就是“關(guān)于正則表達(dá)式的POSIX規(guī)范”,定義了BRE和ERE兩大流派,通常UNIX的一些工具和較老的軟件中會(huì)使用POSSIX風(fēng)格的正則,另外一些數(shù)據(jù)庫(kù)中也提供了POSIX風(fēng)格的正則表達(dá)式
自PHP5。2以后,就不再推薦使用POSIX正則函數(shù)庫(kù),若程序中使用了則會(huì)報(bào)Deprecated級(jí)別的錯(cuò)誤,這種情況通常在一些較老的代碼中比較常見(jiàn)。其實(shí)使用或不使用posix正則函炒出香味庫(kù)二者本質(zhì)上沒(méi)有多大差別,主要是一些表現(xiàn)形式,語(yǔ)法和擴(kuò)展功能的差別
分享名稱(chēng):PHP與正則表達(dá)式
文章位置:http://m.newbst.com/news28/184428.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、做網(wǎng)站、外貿(mào)建站、移動(dòng)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、標(biāo)簽優(yōu)化
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)