”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 用于带或不带协议的 URL 匹配的通用正则表达式

用于带或不带协议的 URL 匹配的通用正则表达式

发布于2024-11-08
浏览:344

Universal Regular Expression for URL Matching with or without Protocols

匹配带或不带协议的 URL 的正则表达式

对于可能包含或不包含“http://www”前缀的 URL ,可以使用正则表达式来执行匹配操作。下面提供了详细的正则表达式模式:

((https?|ftp)://)?([a-z0-9 !*(),;?&amp=$_.-] (:[a-z0-9 !*(),;?&amp=$_.-] )?@)?([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 $%_.-]*)?

要利用此模式进行 URL 验证,可以按以下方式应用:

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

if (preg_match("~^$regex$~i", 'http://www.example.com/etcetc', $m))
    var_dump($m);

此正则表达式解决方案提供了一种全面的方法来匹配 URL,无论它们是否包含“http://”前缀。

版本声明 本文转载于:1729557977如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何在 g++ 中创建和使用静态库?
    如何在 g++ 中创建和使用静态库?
    使用 g 创建静态库 在软件开发领域,共享可重用代码组件至关重要。对于 C 程序员来说,创建静态库提供了一种封装相关功能并将其分布到多个项目的便捷方法。本文提供了有关如何使用 g 构建和使用静态库的分步指南。首先,请考虑从两个文件创建静态库的任务:header.cpp 和 header.hpp。第一...
    编程 发布于2024-11-08
  • 使用 pyplot 进行实时绘图
    使用 pyplot 进行实时绘图
    我想绘制一些从简单的投票应用程序生成的数据的图表。我过去曾对 pyplot 进行过修改,但我没有尝试从头开始创建任何东西。幸运的是,它非常流行,并且在 StackOverflow 和其他地方可以找到大量示例。 我进行了搜索,并从这个与随时间更新图表相关的答案开始。 import matplotlib...
    编程 发布于2024-11-08
  • 了解 UUID:初级开发人员后端工程师指南
    了解 UUID:初级开发人员后端工程师指南
    介绍 作为后端工程师,我们经常负责构建可以扩展和处理大量资源、用户和实体的系统,每个资源、用户和实体都需要唯一的标识。在许多情况下,使用顺序 ID(例如 1、2、3)似乎是一个简单的解决方案,但随着应用程序在分布式系统中增长和扩展,这很快就会成为问题。这就是 UUID(通用唯一标识...
    编程 发布于2024-11-08
  • 如何在Javascript和PHP之间无缝传输数据?
    如何在Javascript和PHP之间无缝传输数据?
    在 Javascript 和 PHP 之间传递数据在 Web 应用程序中,经常需要在客户端 Javascript 代码和 PHP 之间交换数据服务器端 PHP 脚本。本文演示了如何建立此通信通道并双向传递数据。将数据从 Javascript 传递到 PHP要将数据从 Javascript 发送到 P...
    编程 发布于2024-11-08
  • 如何在 Go 中创建包
    如何在 Go 中创建包
    出于可重用的目的,包是管理 Go 代码的良好开端,因为我们可以将其导入并使用到我们的程序中。 让我们创建一个简单的主文件,以开始 package main import "fmt" func main() { fmt.Println("hello world!") } 这是一个简单的 hell...
    编程 发布于2024-11-08
  • ## 如何在 Go 中复制稀疏文件而不扩展它们?
    ## 如何在 Go 中复制稀疏文件而不扩展它们?
    使用 io.Copy() 使稀疏文件变得巨大问题使用 io.Copy() 复制稀疏文件时,它们经常会膨胀目的地的规模急剧扩大。了解稀疏的本质Filesio.Copy() 传输原始字节,这掩盖了稀疏文件中存在的漏洞——实际上没有数据驻留的空间。此信息无法通过标准系统调用(如 read(2))访问。因此...
    编程 发布于2024-11-08
  • 如何通过 PDO 传递数组参数并使用 LIMIT 子句
    如何通过 PDO 传递数组参数并使用 LIMIT 子句
    传递数组参数并在 PDO 中使用 LIMIT 子句处理数据库查询时,将参数数组传递给使用 LIMIT 子句时的 PDO 语句。然而,当使用 bindParam 方法设置各个参数时,这可能具有挑战性。困境出现挑战是因为 LIMIT 子句需要绑定特定的数值,而执行方法需要一个命名参数数组。这种不兼容性导...
    编程 发布于2024-11-08
  • 使用 CSS 技巧立即提高移动可用性
    使用 CSS 技巧立即提高移动可用性
    想要防止用户意外放大您的网站?使用这个简单的元标记在移动设备上禁用双击缩放: 这使您的移动网站感觉更像是本机应用程序。你在你的项目中尝试过这个吗?
    编程 发布于2024-11-08
  • Chrome扩展开发:如何打开页面右侧和顶部的popup.html
    Chrome扩展开发:如何打开页面右侧和顶部的popup.html
    默认在扩展程序图标下方打开弹出窗口,我们可以通过创建新窗口来更改位置 chrome.action.onClicked.addListener(async (tab) => { openPopup(tab) }); const openPopup = async (tab) => ...
    编程 发布于2024-11-08
  • 如何在 Bootstrap 中轻松水平居中图像?
    如何在 Bootstrap 中轻松水平居中图像?
    Bootstrap 图像居中综合指南在网页上水平居中图像对于实现平衡和视觉吸引力通常至关重要设计。当使用流行的 Bootstrap 框架时,您可能很难找到最有效的方法来实现这种对齐。在本文中,我们将探索使用 Bootstrap 将图像死点居中的简单解决方案。.center-block 类Twitte...
    编程 发布于2024-11-08
  • 掌握 Golang:基本编程教程合集
    掌握 Golang:基本编程教程合集
    通过这套全面的编程教程深入探索 Golang 的世界!无论您是经验丰富的开发人员还是刚刚开始 Golang 之旅,这些精心策划的课程都将为您提供成为熟练 Gopher 所需的基本技能和知识。 ? Golang HTTP 请求处理 探索 Golang 中 net/http 包的强大功能...
    编程 发布于2024-11-08
  • 如何在 C++ 中使用enable_if 实现条件成员函数重载?
    如何在 C++ 中使用enable_if 实现条件成员函数重载?
    选择具有不同enable_if条件的成员函数在C语言中,enable_if是一个工具,用于根据是否有条件启用或禁用某些代码模板参数满足特定条件。当您想要根据模板参数自定义类或函数的行为时,这可能很有用。在给定的示例中,目标是创建一个成员函数 MyFunction,该函数根据模板是否参数T是否为整数。...
    编程 发布于2024-11-08
  • 如何修复 phpMyAdmin 中的“用户\'Root\'@\'localhost\'\”访问被拒绝的错误?
    如何修复 phpMyAdmin 中的“用户\'Root\'@\'localhost\'\”访问被拒绝的错误?
    如何解决 phpMyAdmin 中的“访问被拒绝”错误如果遇到“访问被拒绝”访问 phpMyAdmin 时出现“for user 'root'@'localhost' (using password: NO)”错误,通常表示 'root' 用户的密码设...
    编程 发布于2024-11-08
  • Miva 的日子:第 15 天
    Miva 的日子:第 15 天
    这是 100 天 Miva 编码挑战中的第 15 天,虽然时间过得很快,但它帮助我极大地提高了我的 HTML、CSS 和 JavaScript 技能。 今天,我学习了JavaScript中的两个概念。显示对象属性和 JavaScript 事件。它们对于添加数据以及保持网页的响应性和交互性非常重要。 ...
    编程 发布于2024-11-08
  • 将 JavaScript 转换为 TypeScript 的多年经验:我的关怀意见
    将 JavaScript 转换为 TypeScript 的多年经验:我的关怀意见
    I started my JS career in 2015, spent a year working exclusively with it, and then transitioned to TypeScript. I’d love to say 'And never looked back ...
    编程 发布于2024-11-08

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

Copyright© 2022 湘ICP备2022001581号-3