當前位置: 首頁> 最新文章列表> 輸出$matches 查看正則匹配結構

輸出$matches 查看正則匹配結構

M66 2025-06-02

在PHP 中,使用正則表達式進行模式匹配時,通常會用到preg_match()preg_match_all()函數。這些函數會將匹配的結果存儲在$matches變量中。通過查看$matches變量的內容,我們可以了解正則表達式是如何匹配輸入字符串的。

本文將演示如何輸出$matches變量,以便查看正則匹配的具體結構和內容。我們還會討論如何有效地使用print_r()var_dump()函數來檢查$matches數組。

正則匹配基礎

在PHP 中,常用的正則匹配函數有:

這兩個函數的語法如下:

 preg_match($pattern, $subject, $matches, $flags = 0, $offset = 0);
preg_match_all($pattern, $subject, $matches, $flags = 0, $offset = 0);

其中, $pattern是正則表達式, $subject是待匹配的字符串, $matches是用來存儲匹配結果的數組。

示例:如何輸出$matches變量

假設我們有以下的PHP 代碼,通過正則表達式提取一個URL 中的域名部分。我們將使用preg_match()函數,並輸出$matches變量的內容。

 <?php
// 定義正則表達式,用於匹配 URL
$pattern = "/https?:\/\/([a-zA-Z0-9.-]+)/";

// 輸入的 URL 字符串
$url = "https://www.example.com/path/to/resource";

// 使用 preg_match() 執行正則匹配
preg_match($pattern, $url, $matches);

// 輸出 $matches 的內容
print_r($matches);
?>

代碼解析

  1. $pattern是一個正則表達式, https?:\/\/([a-zA-Z0-9.-]+) ,它用於匹配URL。

  2. $url是待匹配的字符串,這裡我們用的是https://www.example.com/path/to/resource

  3. preg_match()函數執行正則匹配,將匹配到的結果存儲在$matches數組中。

  4. 最後,我們使用print_r()函數來輸出$matches數組的內容。

輸出結果

運行上述代碼後,輸出結果可能如下:

 Array
(
    [0] => https://www.example.com
    [1] => www.example.com
)

解釋輸出

  • $matches[0]包含完整的匹配結果,即整個URL ( https://www.example.com ).

  • $matches[1]包含第一個捕獲組的結果,即域名部分( www.example.com ).

如何替換URL 中的域名

如果你想將URL 中的域名替換為m66.net ,可以在正則表達式匹配之後進行替換。例如: