彰化一整天的論壇

 找回密碼
 立即註冊
查看: 98|回復: 0

【轉貼】php preg_match 正規表示式比對使用介紹

[複製鏈接]
發表於 2018-8-8 13:18:58 | 顯示全部樓層 |閱讀模式
preg_match 進行正則表示式比對資料

int preg_match ( string pattern, string subject [, array matches [, int flags]] )

程式會在 string subject 中進行比對是否有符合 string pattern 條件的結果

很多人剛開始使用 preg_match 都蠻不了解其正規的用法,其實就算不完全了解正規的用法也是可以了解 preg_match 初階的使用方式,基本觀念就是給一個字串讓 preg_match 去幫你比對出符合條件的部分,透過幾個範例應該就能上手。

範例一、用 preg_match 單純的找出是否符合條件

if (preg_match("/1/i", "12345")) {
    echo "條件符合";
} else {
    echo "條件不符合";
}

這個範例會顯示條件符合。其中 i 表示不區分大小寫。

範例二、用 preg_match 找出完全符合的字母

if (preg_match("/\bdef\b/i", "abcdefg")) {
 echo "條件符合";
} else {
 echo "條件不符合";
}

這個範例會顯示條件不符合。其中 \b 所代表的意思是完全符合才算數,也就是說字串 abcdefg 中必須要有獨立的 def 才算符合,以目前狀況來說 abcdefg 全部黏在一起,所以並不符合,我們可以做個修改

if (preg_match("/\bdef\b/i", "abc def g")) {
 echo "條件符合";
} else {
 echo "條件不符合";
}

這樣子就會輸出條件符合囉!

範例三、用 preg_match 找出網址的部分

preg_match('@^(?:http://)?([^/]+)@i',"http://www.webtech.tw", $matches);
$host = $matches[1].'';
echo   $host;

這樣會輸出 www.webtech.tw,preg_match 先比對條件符合的結果,再把他放到 matches 陣列中,如果你輸出 matches 陣列會看到這樣

Array ( [0] => http://www.webtech.tw [1] => www.webtech.tw )

接著我們再利用 preg_match 去取得 webtech.tw 這樣的結果

preg_match('/[^.]+\.[^.]+$/', $host, $matches);
echo $matches[0];

這樣就順利找到咱們的 domain name 囉!


文章來源: http://www.webtech.tw/info.php?tid=46

回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

 ㄚ母滴雞湯
 員林香純滴雞精

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  |网站地图

GMT+8, 2018-12-16 05:12 , Processed in 0.132543 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表