<?php
// 模式定界符後面的 "i" 表示不區分大小寫字母的搜索
if (preg_match ("/php/i", "PHP is the web scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>
取得當前時間
代碼如下 復制代碼<?php
//需要匹配的字符串。date函數返回當前時間。 "現在時刻:2012-04-20 07:31 am"
$content = "現在時刻:".date("Y-m-d h:i a");
//匹配日期和時間.
if (preg_match ("/d{4}-d{2}-d{2} d{2}:d{2} [ap]m/", $content, $m))
{
echo "匹配的時間是:" .$m[0]. "n"; //"2012-04-20 07:31 am"
}
//分別取得日期和時間
if (preg_match ("/([d-]{10}) ([d:]{5} [ap]m)/", $content, $m))
{
echo "當前日期是:" .$m[1]. "n"; //"2012-04-20"
echo "當前時間是:" .$m[2]. "n"; //"07:31 am"
}
?>
這個例子將驗證出此 Email 地址為正確格式。現在讓我們來看看這段正則表達式所代表的各種規則。
獲取Google首頁title
比如說要獲取google首頁的title內容,代碼如下:
<?php
$str = file_get_contents('http://www.google.com');
preg_match('/<title>(.*)</title>/', $str, $arr);
echo $arr[1];
?>
從網址獲取域名
代碼如下 復制代碼 <?phppreg_match($pattern,$string,$matcher)其中$pattern對應的就是/^(http://)?([^/]+)/i,$string 是http://www.php.net/index.html,$match是匹配到的結果。
如果提供了 matches,則其會被搜索的結果所填充。$matches[0] 將包含與整個模式匹配的文本,$matches[1] 將包含與第一個捕獲的括號中的子模式所匹配的文本,以此類推。
$matches[0] 將包含與整個模式匹配的文本。咱們用pring_r打印出來第一個$matches:
代碼如下 復制代碼Array (
[0] => http://www.111cn.net
[1] => http://
[2] => www.111cn.net )
$matches[0] 將包含與整個模式匹配的文本,$matches[1] 將包含與第一個捕獲的括號中的子模式所匹配的文本。在正則中,()代表模式:匹配 pattern 並獲取這一匹配。所獲取的匹配可以從產生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中則使用 $0…$9 屬性。就是說數組中下標為1的值就是正則中/^(http://)?([^/]+)/i第一個()裡的值!數組下標2的值以此類推。