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

如何创建正则表达式过滤指定子域名的URL请求

筛选特定子域名的URL请求

针对你的需求——严格匹配URL中w.x.y.z部分为fun.foo.bar.net,原正则存在两个核心问题:

  1. 未转义.:正则中.是通配符,会匹配任意字符,导致funXfooYbarZnet这类字符串也会被误判
  2. 未限定域名边界:没有明确目标域名的前后分隔符,可能匹配到包含该域名的更长域名(比如fun.foo.bar.net.abc.com)

正确的正则表达式

需要同时解决上述两个问题,明确目标域名的边界并转义特殊字符:

private static final Pattern PAT = Pattern.compile("https?://.*?\\.fun\\.foo\\.bar\\.net(:|/|$)");
  • https?://:匹配HTTP或HTTPS协议
  • .*?:非贪婪匹配协议后的前缀域名段(避免过度匹配)
  • \\.fun\\.foo\\.bar\\.net:转义每个.,严格匹配目标域名
  • (:|/|$):限定目标域名的后续边界,只能是端口冒号、路径斜杠或URL结尾

简化的代码实现

你不需要遍历分组,因为核心需求是判断是否匹配,直接用find()即可:

private static final Pattern PAT = Pattern.compile("https?://.*?\\.fun\\.foo\\.bar\\.net(:|/|$)");

public boolean isTargetRequest(String requestUrl) {
    return PAT.matcher(requestUrl).find();
}

如果需要极致严谨,可以把.*?替换为合法域名字符的匹配规则[a-zA-Z0-9\\-\\.]+,避免匹配到非法字符,但非贪婪匹配在大多数场景下已经足够实用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:02:50