preg_match

preg_match

preg_match是一個計算機函式,功能是會被搜尋的結果所填充,進行正則表達式匹配。並且只匹配一次,注意與preg_match_all區別。

基本介紹

  • 中文名:preg_match
  • 作用:會被搜尋的結果所填充
  • 相關:電腦程式
  • 分類:函式
說明,注釋,範例,

說明

int preg_match( string pattern, string subject [, array matches [, int flags]] )
subject 字元串中搜尋與pattern給出的正則表達式相匹配的內容。
如果提供了 matches,則其會被搜尋的結果所填充。$matches[0] 將包含與整個模式匹配的文本,$matches[1] 將包含與第一個捕獲的括弧中的子模式所匹配的文本,以此類推。
flags 可以是下列標記:
PREG_OFFSET_CAPTURE如果設定本標記,對每個出現的匹配結果也同時返回其附屬的字元串偏移量。注意這改變了返回的數組的值,使其中的每個單元也是一個數組,其中第一項為匹配字元串,第二項為其偏移量。本標記自PHP 4.3.0 起可用。
flags 參數來自 PHP 4.3.0 起可用。
preg_match() 返回 pattern 所匹配的次數。要么是 0 次(沒有匹配)或 1 次,因為 preg_match() 在第一次匹配之後將停止搜尋。如果出錯 preg_match() 返回FALSE。

注釋

如果你僅僅想要檢查一個字元串是否包含另外一個字元串, 不要使用preg_match()。 使用strpos()或strstr()替代完成工作會更快。

範例

從 URL 中取出域名
<?php
// 從 URL 中取得主機名
preg_match("/^(http:\/\/)?([^\/]+)/i", "http://www.***.net/index.html", $matches);
$host = $matches[2];
// 從主機名中取得後面兩段
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>
本例將輸出:
domain name is: PPP.NET
搜尋單詞“web”
<?php
/* 模式中的 \b 表示單詞的邊界,因此只有獨立的 "web" 單詞會被匹配,
* 而不會匹配例如 "webbing" 或 "cobweb" 中的一部分 */
if (preg_match ("/\bweb\b/i", "PHP is the web scripting language of choice.")) {

相關詞條

熱門詞條

聯絡我們