”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何使用正则表达式匹配带有或不带有可选 HTTP 和 WWW 前缀的 URL?

如何使用正则表达式匹配带有或不带有可选 HTTP 和 WWW 前缀的 URL?

发布于2024-11-09
浏览:622

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))

这将返回 TRUE如果字符串与包含或不包含“http://www”的 URL 模式匹配。前缀。

版本声明 本文转载于:1729557683如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3