You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将域名与IP正则规则合并为单一规则以支持带HTTP/HTTPS前缀的IP地址

解决正则验证IP+域名(含HTTP/HTTPS前缀)的问题

我来帮你搞定这个正则调整的需求!你原来的正则已经覆盖了纯IP、各类域名格式,但缺少带HTTP/HTTPS前缀的IP验证。关键问题在于原结构是纯IP分支和带前缀的域名分支分开,没有把前缀和IP结合起来。我们可以通过重构正则结构,让前缀部分同时适配IP和域名,一次性覆盖所有目标格式。

调整后的正则表达式

^(?:(?:http:\/\/|https:\/\/)(?:www\.)?)?(?:(?:25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(?:\.(?!$)|$){4}|[a-z0-9]+(?:[-\.][a-z0-9]+)*\.[a-z]{2,5}(?::[0-9]{1,5})?(?:\/.*)?)$

正则结构拆解(核心改动说明)

我把整个正则拆成了两个核心部分,让逻辑更清晰:

  1. 可选的HTTP/HTTPS前缀:
    (?:(?:http:\/\/|https:\/\/)(?:www\.)?)?

    • 匹配http://、https://,后面可选带www.,整个前缀部分是可选的(末尾的?),所以纯IP/纯域名也能匹配。
    • 用(?:...)非捕获组,避免生成不必要的捕获组,提升性能。
  2. 二选一的主体(IP或域名):
    (?:IP验证规则|域名验证规则)

    • IP验证规则:和你原正则的IP部分完全一致,确保是合法的IPv4地址(比如65.98.157.52),同时避免末尾出现多余的点。
    • 域名验证规则:保留你原正则的域名逻辑,支持纯域名、带www的域名、带端口/路径的域名(比如example.com:8080/path)。

验证所有目标格式

这个正则可以完美匹配你列出的所有9种格式:

  • 纯IP:65.98.157.52
  • 纯域名:example.com
  • 带www域名:www.example.com
  • HTTP前缀域名:http://example.com、http://www.example.com
  • HTTPS前缀域名:https://example.com、https://www.example.com
  • HTTP前缀IP:http://65.98.157.52
  • HTTPS前缀IP:https://65.98.157.52

为什么原结构不行?

你原来的正则是纯IP分支 | 带前缀的域名分支,没有考虑“前缀+IP”的组合。通过把前缀部分抽出来作为可选的公共部分,后面再跟上IP/域名的二选一,就能一次性覆盖所有场景,不用再拆分多个独立分支,逻辑更简洁也更易维护。

内容的提问来源于stack exchange,提问作者Onyx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 02:52:41