PHP中的正規表示式

2022-04-02 07:43:47 字數 1491 閱讀 8948

??綜述??正規表示式是一種可以用於模式匹配和調換的強有力的工具。正規表示式可以讓使用者通過應用一系列的特別字元構建匹配模式,然後把匹配模式與資料檔案、程式輸進以及web頁面的表單輸進等目標物件進行比擬,根據比擬物件中是否包含匹配模式,履行相應的程式。

??如何應用基礎模式匹配?

模式,是正規表示式最基礎的元素,它們是一組描寫字串特點的字元。模式可以很簡略,由普通的字串組成,也可以非常複雜,往往用特別的字元表現乙個範疇內的字元重複呈現,或表現高低文。我們先看一些正規表示式中的特別字元。

??特別字元'^'用來匹配以指定字串開頭的字串。例如:

????'^hello' :這個模式與字串'hello,php world!'匹配,但是與'say hello to you'不匹配。

??特別字元'$'用來匹配以指定字串結尾的字串。例如:

????'you$' :這個模式與'how are you'匹配,與'your'不匹配。

??當特別字元'^'和'$'同時應用時,表現準確匹配。例如:

????'^hello$' :這個模式只匹配字串'hello'。

??假如乙個模式不包含'^'和'$',那麼它與任何包含該模式的字串匹配。例如: ????'you' :與字串'what is your name?'是匹配的。

??在該模式中的字母只是普通的字元,數字也是一樣的。

??假如要用到其他一些稍微複雜的字元,如標點符號和空缺字元(比如空格、製表符等),就要要用到轉義序列。所有的轉義序列都用反斜槓('\')打頭,例如製表符的轉義序列是:'\t'。所以假如我們要檢測乙個字串是否以製表符開頭,可以用這個模式:

????'^\t'

??類似的,用'\n'表現換行,'\r'表現回車,反斜槓本身用'\\'表現,句號'.'用'\.'表現,依此類推。

??如何應用字元簇?

??假如要判定使用者輸進的**號碼、位址、email位址、信用卡號碼等是否有效,用普通的基於字面的字串比擬是不夠的。所以要用一種更好的方法來描寫我們想要的模式,這就是字元簇。

??比如,要建立乙個表現所有母音字元的字元簇,就可以這樣做:

????'[aaeeiioouu]' :這個模式與任何母音字元匹配,但只能表現乙個字元。

??用特別符號'-'可以表現乙個字元的範疇,如:

'[a-z]'

//匹配字母a-z,即所有的小寫字母

'[a-z]'

//匹配字母a-z,即所有的大寫字母

'[a-za-z]'

//匹配所有的字母

'[0-9]'

//匹配所有的數字

'[0-9\.\-]'

//匹配所有的數字,以及句號和減號

'[ \f\r\t\n]'

//匹配所有的白字元

??同樣的,這些也只匹配乙個字元。

??假如要匹配由乙個小寫字母和一位數字組成的字串,比如'a4'、'b5'或'f1',但不是'aa4'、'b5a4' 或'f12'的話,用這個模式:

PHP中的正規表示式

url php繼承unix的一貫傳統,完全支援正規表示式的處理。正規表示式提供了一種高階的,但不直觀的字串匹配和處理的方法。用過perl的正規表示式的朋友都知道,正規表示式的功能非常強大,但學起來不是那麼容易。比如 這段有效卻難以理解的 足夠使一些程式設計師頭痛 我就是 或者讓他們放棄使用正規表示式...

PHP中的正規表示式

php繼承 nix的一貫傳統,完全支援正規表示式的處理。正規表示式提供了一種高階的,但不直觀的字串匹配和處理的方法。用過perl的正規表示式的朋友都知道,正規表示式的功能非常強大,但學起來不是那麼容易。比如 這段有效卻難以理解的 足夠使一些程式設計師頭痛 我就是 或者讓他們放棄使用正規表示式。相信當...

PHP中的正規表示式

定界符,就是定乙個邊界,邊界已內的就是正則表達示。php的正則表達示定界符的規定如下 定界符,不能用a za z0 9 其他的都可以用。必須成對出現,有開始就有結束。所有可見不可見的字元就是原子 說明 我們見到的空格 回車 換行 0 9 a za z 中文 標點符號 特殊符號全為原子。int pre...