在php中我們經常會用到正則這一塊,但php也給我提供了大量的支援正規表示式的函式,各有各的功能和說明,下面我們來了解一下。
它們都把乙個正規表示式作為它們的第乙個引數,列出如下:
ereg: 最常用的正規表示式函式, ereg 允許我們搜尋跟乙個正規表示式匹配的乙個字串.
ereg_replace: 允許我們搜尋跟正規表示式匹配的乙個字串,並用新的字串代替所有這個表示式出現的地方。
eregi: 和ereg幾乎是一樣效果,不過忽略大小寫。
eregi_replace: 和ereg_replace有著一樣的搜尋-替換功能,不過忽略大小寫.
split: 允許我們搜尋和正規表示式匹配的字串,並且以字串集合的方式返回匹配結果.
spliti: split函式忽略大小寫的版本.
為什麼使用正規表示式?
如果你不斷地建立不同的函式來檢查或者操作字串的一部分,現在你可能要放棄所有的這些函式,取而代之的用正規表示式。如果你對下列的問題都答「是的」,那麼你肯定要考慮使用正規表示式了:
你是否正在寫一些定製的函式來檢查表單資料(比如在電子信箱位址中的乙個@,乙個點)?
你是否寫一些定製的函式,在乙個字串中迴圈每個字元,如果這個字元匹配了乙個特定特徵(比如它是大寫的,或者它是乙個空格),那麼就替換它?
除了是令人不舒服的字串檢查和操作方法,如果沒有有效率地寫**,上述的兩條也會使你的程式慢下來。你是否更傾向於用下面的**檢查乙個電子信箱位址呢:
**如下
複製**
<?www.111cn.net構成,但是可以隨意選擇要不要www部分。為了例子簡單,我們只允許.com,.net,和.org的網域名稱是在考慮之中的。我們最好這樣對正規表示式中的網域名稱部分表示如下:
(www.)?. .(com|net|org)$
把所有的東西放在一起,我們的正規表示式就可以用作檢查乙個網域名稱,如: **如下
複製**
<?php
function isvaliddomain($domainname)
//真(true)
echo isvaliddomain("");
//真(true)
echo isvaliddomain("");
//假 (false)
echo isvaliddomain("");
//假 (false)
echo isvaliddomain("www.111cn.net");
?>
例子二
因為我居住在澳大利亞雪梨,讓我們檢查乙個典型的澳大利亞國際**號碼。澳大利亞國際**號碼的格式如下:
61x ***x-***x
第乙個x是區號,其它的都是**號碼。檢查以' 61'開頭且緊跟乙個在2到9之間的區號的**號碼,我們用下面的正規表示式:
^ 61[2-9][[:space:]]
注意,上面的搜尋模式把' '字元用''轉義,以便於可以在搜尋中包含,不至於被解釋為乙個正規表示式。[2-9]告訴正規表示式引擎我們需要包含乙個2到9之間的數字。[[:space:]]類則告訴正規表示式期望在這裡有乙個空白。
這裡是**號碼剩下的搜尋模式:
[0-9]-[0-9]$
這裡沒有什麼不尋常的地方,我們只是告訴正規表示式引擎**號碼可用的數字,它必須是4個數字的組合,跟著乙個連線符,再跟著另乙個4個數字的組合,然後乙個字串尾部字元。
把完整的正規表示式放在一起,放進乙個函式,我們可以用**來檢查一些澳大利亞國際**號碼:
**如下
複製**
<?php
function isvalidphone($phonenum)
-[0-9]$", $phonenum);
}// 真(true)
echo isvalidphone(" 619 0000-0000");
// 假(false)
echo isvalidphone(" 61 00000000");
//假( false)
echo isvalidphone(" 611 00000000");
?>
php模板推薦,分享 六個絕佳的PHP模板引擎
對於良好的可維護性的中型專案 在我看來是超過4個頁面 對頁面的邏輯檢視進行分隔是至關重要的。在乙個有著幾個頁面的應用程式,使用 php?在頁面中插入包含的所有必要邏輯可能就足夠了,但是當使用乙個路由器的時候,找到乙個好的模板引擎是很重要的。下表列舉的六個絕佳的php模板引擎可能會助你一臂之力。sma...
實現程式設計理論的六個原則 宣告式表達
宣告式表達是指在表達 意圖時,盡量用 宣告式 的表達方式,而非 命令式 的表達方式。命令式程式設計描述的是問題的解決方法,也就是資料結構與演算法。而宣告式程式設計描述的是問題的定義,也就是當前問題的性質及解決問題時應滿足的限制條件。宣告式的 沒有流程方面的限制。這種單純闡述事實的表達方式能夠提公升 ...
PHP常用的正規表示式函式
pattern表示正規表示式 subject表示匹配的目標資料 1 查詢函式 可用於表單驗證等 array matches儲存匹配結果 preg match pattern,subject,array matches 表示可選引數,為引用傳參 特點 匹配一次,返回值返回值表示查詢到的次數,為0或1 ...