/* 尋找字串是Regex的主要應用。在php中,可以作用的並且用於匹配perl風格Regex的
主要函數是 preg_match()。該函數原型如下
int preg_match(string pattern, string subject[,array matches[,int flags]])
在subject中搜尋pattern。$matches[0]將包含與整個模式比對的文本,
$matches[1]將包含與第一個捕獲的括弧中的子模式所匹配的文本。依此類推
*/
$text = "PHP is the web scripting language of choice.";
print("在文本/"{$text}/" 中搜尋 /"php/"/n");
if (preg_match("/php/i", $text)){ //模式定界符後面的"i"表示搜尋時不區分大水寫
print "->找到一個匹配/n/n";
}else{
print "->未找到模式/n/n";
}
$text = "PHP is the website scripting language of choice.";
print("在文本/"{$text}/" 中搜尋單詞 /"web/"/n");
if(preg_match("//bweb/b/i", $text)){ //模式定界符後面的"/b"表示單詞的邊界,因此只有獨立的單詞"web"才會匹配
print "->找到一個匹配/n/n";
}else{
print "->未找到模式/n/n";
}
print("在文本/"{$text}/" 中搜尋單詞 /"web/"/n");
if(preg_match("/web/i", $text)){
print "->找到一個匹配/n/n";
}else{
print "->未找到模式/n/n";
}
$text = "http://www.php.net/index.html";
print("從UR/"{$text}/" 中取得主機名稱和網域名稱/n");
if(preg_match("/^(http:////)?([^//]+)/i", $text, $matches)){ //模式中圓括弧括起來的為子運算式
$host = $matches[2];
print "->主機名稱為:$host/n/n";
preg_match("/[^/.//]+/.[^/.//]+$/",$host, $matches); //從主機名稱中取得後面兩段
print "->網域名稱為:{$matches[0]}/n";
}
?>