」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用正規表示式來匹配URL?

如何使用正規表示式來匹配URL?

發佈於2024-11-10
瀏覽:430

How to Match URLs Using Regular Expressions?

用正規表示式匹配URL

正規表示式一開始可能會讓人望而生畏,但它們為不同的資料類型提供了強大的模式匹配功能。在提取 URL 的上下文中,需要一個靈活的模式來適應 URL 格式的變化。

一個強大的正規表示式,可以捕獲有或沒有領先協議的URL(例如,「http://www」或「 www") 是:

((https?|ftp)://)? // Optional SCHEME
([a-z0-9 !*(),;?&=$_.-] (:[a-z0-9 !*(),;?&=$_.-] )?@)? // Optional User and Pass
([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3}))) // Host or IP address
(:[0-9]{2,5})? // Optional Port
(/([a-z0-9 $_%-]\.?) )*/? // Path
(\?[a-z &\$_.-][a-z0-9;:@&%= /$_.-]*)? // Optional GET Query
(#[a-z_.-][a-z0-9 $%_.-]*)? // Optional Anchor

要在 PHP 中使用此表達式,請將其括在雙引號中,並將其與要計算的 URL 一起傳遞給 preg_match 函數。例如:

$url = 'www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL without protocol';
}

同樣,對於有協議的 URL:

$url = 'http://www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL with protocol';
}

此模式應涵蓋廣泛的 URL 格式,同時還可以防止包含「/」等字元的潛在惡意輸入。

版本聲明 本文轉載於:17295578​​58如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3