当前位置: 首页 > news >正文

网址匹配正则表达式(python实现)

网址匹配正则表达式(python实现)

正则表达式部分如下:

pattern = re.compile(r'^(?:http|ftp)s?://'       # http:// or https:// or ftp:// or ftps://r'(?:\S+(?::\S*)?@)?'       # 可选的 用户:密码@ 部分r'(?:'                      # 开始匹配域名r'[A-Z0-9.-]+\.[A-Z]{2,6}'  # 规范的域名,如 example.comr'|'                        # 或者r'localhost'                # 本地 localhostr')'                        # 域名结束r'(?::\d{2,5})?'            # 可选的端口号,如 :8080r'(?:/?|[/?]\S+)$',         # 可选的路径和查询参数,如 /path 或 /path?query=1re.IGNORECASE               # 不区分大小写
)
分段解释
  • r'^(?:http|ftp)s?://':该部分匹配 URL 的协议部分,支持 http://https://ftp://ftps://。其中,s? 表示 s 是可选的,这使得该部分可以匹配带有或不带有 s 的 URL。

  • r'(?:\S+(?::\S*)?@)?':这个部分用于匹配可选的用户信息,即 用户:密码@,这是用于带有身份验证的 URL 的常见格式。? 表示这一部分是可选的,不一定会出现在 URL 中。

  • r'(?:[A-Z0-9.-]+\.[A-Z]{2,6}|localhost)':该部分匹配域名:

    • [A-Z0-9.-]+\.[A-Z]{2,6}:匹配像 example.com 这样的域名,.com 的后缀部分可以是 2 到 6 个字母(如 .com.org.net 等)。
    • localhost:专门处理 localhost 的情况,这是在本地开发时常用的 URL。
  • r'(?::\d{2,5})?':这个部分用于匹配可选的端口号(例如 :8080),其中端口号的位数可以是 2 到 5 位。该部分也是可选的。

  • r'(?:/?|[/?]\S+)$':这个部分匹配 URL 的路径或查询参数部分,可能为空,或者可以是类似 /path/path?query=1 的格式。

  • re.IGNORECASE:这是正则表达式的一个标志,它指定正则表达式在匹配时不区分大小写。

这个正则表达式涵盖了协议、用户信息、域名、端口号、路径等各个 URL 的组成部分,能够处理大多数常见的 URL 格式。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 欺诈文本分类检测(十五)——数据校正与增强
  • 分布式消息中间件kafka
  • 计算机毕业设计 美发管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 记一次docker打包部署历程
  • NoSql数据库Redis知识点
  • Python的串口通信库
  • 【学习笔记】手写Tomcat 四
  • 文件操作(3)
  • Python套接字
  • 植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
  • 一些线上常用排查问题的命令
  • 深度学习之概率论预备知识点(3)
  • CVE-2024-46103
  • 深度学习02-pytorch-08-自动微分模块
  • Qt/C++开发经验
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Babel配置的不完全指南
  • ECMAScript入门(七)--Module语法
  • Git 使用集
  • HTTP请求重发
  • interface和setter,getter
  • Intervention/image 图片处理扩展包的安装和使用
  • Javascript Math对象和Date对象常用方法详解
  • Python爬虫--- 1.3 BS4库的解析器
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Webpack 4 学习01(基础配置)
  • yii2中session跨域名的问题
  • 从0到1:PostCSS 插件开发最佳实践
  • 规范化安全开发 KOA 手脚架
  • 欢迎参加第二届中国游戏开发者大会
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 整理一些计算机基础知识!
  • ​补​充​经​纬​恒​润​一​面​
  • ​浅谈 Linux 中的 core dump 分析方法
  • ​虚拟化系列介绍(十)
  • ‌内网穿透技术‌总结
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #单片机(TB6600驱动42步进电机)
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (6)添加vue-cookie
  • (8)STL算法之替换
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (四)Controller接口控制器详解(三)
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (转)关于pipe()的详细解析
  • .“空心村”成因分析及解决对策122344
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net 调用php,php 调用.net com组件 --
  • .NET 发展历程