PHP常用用的六個處理正規表示式函式

2021-07-24 16:00:21 字數 2175 閱讀 4438

在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 ...