0

我想找到与特定网站对应的 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/$')) .           
} 

(链接在这里

4

1 回答 1

2

模式\w(写\\w为 escape \)表示一个字母,但据我所知,您期望三个 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/$'

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

于 2016-08-15T04:57:50.830 回答