繁体   English   中英

SPARQL中的正则表达式:为什么[[:alnum:]]不返回匹配项?

[英]Regex in SPARQL: Why [[:alnum:]] doesn't return matches?

我想找到对应于特定网站的Wikidata资源。 这是我的查询

SELECT DISTINCT ?resource ?instanceOfLabel ?website
WHERE
{
    ?resource wdt:P856 ?website.
        FILTER (REGEX(str(?website), 'http(s)?://(\\w.)?smh.com.au/$')) .
  }           
} 

此处链接),不会返回任何结果。 这不是我所期望的

SELECT DISTINCT ?resource ?instanceOfLabel ?website
WHERE
{
    ?resource wdt:P856 ?website.
        FILTER (REGEX(str(?website), 'http(s)?://www.smh.com.au/$')) .           
} 

在这里链接)

模式\\w (写为\\\\w逃逸\\ )表示一个字母,但是据我所知,您期望三个 w字母。

要匹配三个w您应该使用

'http(s)?://(w{3}.)?smh.com.au/$'

但是,使用www什么问题?

'http(s)?://(www.)?smh.com.au/$'

如果您想使用三个字母

'http(s)?://(\\w{3}.)?smh.com.au/$'

也许您只想要0以上的字母?

'http(s)?://(\\w+.)?smh.com.au/$'

我想,这个答案将对您有所帮助: 如何在正则表达式中表示固定数量的重复?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM