淺析PHP正則表達(dá)式匹配的實(shí)現(xiàn)
淺析PHP正則表達(dá)式匹配的實(shí)現(xiàn)
PHP正則表達(dá)式匹配是我們談到正則表達(dá)式在PHP中是應(yīng)用的最終目的,那么如何實(shí)現(xiàn)PHP正則表達(dá)式匹配呢?具體的會使用到什么方法呢?讓我們來看看具體的內(nèi)容。
PHP繼承UNIX的一貫傳統(tǒng),完全支持正規(guī)表達(dá)式的處理。正規(guī)表達(dá)式提供了一種高級的,但不直觀的字符串匹配和處理的方法。用過PERL的正規(guī)表達(dá)式的朋友都知道,正規(guī)表達(dá)式的功能非常強(qiáng)大,但學(xué)起來不是那么容易。
PHP正則表達(dá)式匹配實(shí)例應(yīng)用:
- ^.+@.+\..+$
這段有效卻難以理解的代碼足夠使一些程序員頭痛(我就是)或者讓他們放棄使用正規(guī)表達(dá)式。相信當(dāng)你讀完這個教程后,就可以理解這段代碼的含義了。
PHP正則表達(dá)式匹配之基本模式匹配
一切從最基本的開始。模式,是正規(guī)表達(dá)式最基本的元素,它們是一組描述字符串特征的字符。模式可以很簡單,由普通的字符串組成,也可以非常復(fù)雜,往往用特殊的字符表示一個范圍內(nèi)的字符、重復(fù)出現(xiàn),或表示上下文。例如:
^once
這個模式包含一個特殊的字符^,表示該模式只匹配那些以once開頭的字符串。例如該模式與字符串\"once upon a time\"匹配,與\"There once was a man from NewYork\"不匹配。正如如^符號表示開頭一樣,$符號用來匹配那些以給定模式結(jié)尾的字符串。
bucket$
這個模式與\"Who kept all of this cash in a bucket\"匹配,與\"buckets\"不匹配。字符^和$同時使用時,表示精確匹配(字符串與模式一樣)。例如:
^bucket$
只匹配字符串\"bucket\"。如果一個模式不包括^和$,那么它與任何包含該模式的字符串匹配。例如:模式
once
與字符串
- There once was a man from NewYork
- Who kept all of his cash in a bucket.
是匹配的。
在該模式中的字母(o-n-c-e)是字面的字符,也就是說,他們表示該字母本身,數(shù)字也是一樣的。其他一些稍微復(fù)雜的字符,如標(biāo)點(diǎn)符號和白字符(空格、制表符等),要用到轉(zhuǎn)義序列。所有的轉(zhuǎn)義序列都用反斜杠()打頭。制表符的轉(zhuǎn)義序列是:t。所以如果我們要檢測一個字符串是否以制表符開頭,可以用這個模式:
^t
類似的,用n表示“新行”,r表示回車。其他的特殊符號,可以用在前面加上反斜杠,如反斜杠本身用\表示,句號.用.表示,以此類推。
PHP正則表達(dá)式匹配相關(guān)的內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)PHP正則表達(dá)式匹配有所幫助。
【編輯推薦】