」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用正規表示式來匹配帶有或不帶有可選 HTTP 和 WWW 前綴的 URL?

如何使用正規表示式來匹配帶有或不帶有可選 HTTP 和 WWW 前綴的 URL?

發佈於2024-11-09
瀏覽:978

How to Match URLs with or Without Optional HTTP and WWW Prefixes Using a Regular Expression?

使用可選 HTTP 和 WWW 前綴匹配 URL

正則表達式是執行複雜模式匹配任務的強大工具。當涉及到符合 URL 時,格式通常會有所不同,例如是否包含「http://www」。

使用正規表示式的解決方案

匹配帶或不帶「http://www」的 URL。前綴,可以使用以下正規表示式:

((https?|ftp)://)?
([a-z0-9 !*(),;?&=$_.-] (:[a-z0-9 !*(),;?&=$_.-] )?@)?
([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3})))
(:[0-9]{2,5})?
(/([a-z0-9 $_%-]\.?) )*/?
(\?[a-z &\$_.-][a-z0-9;:@&%= /$_.-]*)?
(#a-z_.-][a-z0-9 $%_.-]*)?

表達式細分:

  • (https?|ftp):// - 可選協議識別碼(http 或ftp)
  • ([a-z0-9 !*(),;?&= $_ .-] (:[a-z0-9 !*(),;?&=$_.-] )?@)? - 可選用戶名和密碼
  • ([ a-z0-9-.]*).(([a-z]{2,4})|([0-9]{1,3}.([0-9]{1,3}). ([ 0-9]{1,3}))) - 主機名稱或IP 位址
  • (:[0-9]{2,5})? -可選連接埠號碼
  • (/([a-z0-9 $_%-].?) )*/? - 可選路徑
  • (?a-z &$ _.-*)? - 可選查詢字串
  • (#a-z_.-][a-z0-9 $%_.-]* )? - 可選錨

用法範例

要檢查給定字串是否與正規表示式匹配,請使用下列語法:

if(preg_match(~^$regex$~i, 'www.example.com/etcetc', $m))

如果字串與有或沒有有“http:// /萬維網。”前綴。

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

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

Copyright© 2022 湘ICP备2022001581号-3