[英]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.