首頁 > 後端開發 > php教程 > 如何使用正規表示式來匹配帶有或不帶有可選 HTTP 和 WWW 前綴的 URL?

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

Mary-Kate Olsen
發布: 2024-10-22 08:42:03
原創
660 人瀏覽過

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 $%_.-]*)? - 可選錨點

用法範例

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

<code class="php">if(preg_match(~^$regex$~i, 'www.example.com/etcetc', $m))</code>
登入後複製

如果字串與URL 模式匹配,則傳回TRUE帶或不帶「http://www」。前綴。

以上是如何使用正規表示式來匹配帶有或不帶有可選 HTTP 和 WWW 前綴的 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板