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

SPARQL GraphDB查询中如何提取URL的基础域名?

解决SPARQL提取URL基础域名的问题

你当前的SPARQL查询里,正则匹配失败主要是因为原正则.*://(.*?)/.*有两个关键缺陷:

  • 要求URL必须包含域名后的斜杠,像http://www.schema.org这种无后续路径的URL会匹配失败,直接返回原URL
  • .*?的惰性匹配可能在复杂URL下捕获不完整

同时原查询的日期条件只限定了2001年,没法精准匹配5月的文章,也需要调整。

修正后的完整SPARQL查询如下:

PREFIX : <http://www.mysemantics.com/> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?hostingWebsite
WHERE {
    ?article a :Article . 
    # 精准匹配2001年5月的文章
    ?article :datePublished ?date .
    FILTER(?date >= "2001-05-01"^^xsd:date && ?date < "2001-06-01"^^xsd:date)
    ?article :hasAuthor :JamesHendler .
    ?article :url ?url . 
    # 修正后的正则:兼容带路径和不带路径的URL,精准提取域名
    BIND(REPLACE(?url, "^.*://([^/]+)(/.*)?$", "$1") AS ?hostingWebsite)
}

正则说明:

  • ^.*://:匹配URL开头的协议部分(http://、https://等)
  • ([^/]+):捕获://之后到第一个/之前的所有字符(即域名),[^/]表示非/的任意字符,+确保至少匹配一个字符
  • (/.*)?$:匹配域名后的路径部分,?标记这部分为可选,兼容无后续斜杠的URL
  • $1:引用第一个捕获组的内容,也就是提取到的域名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 12:37:18