2016-08-15 64 views
0

我想查找對應於特定網站的維基數據資源。這是我的查詢SPARQL中的正則表達式:爲什麼[[:alnum:]]不返回匹配項?

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

(鏈接here) 不返回任何結果。這不是我所期望的,因爲

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

(鏈接here

+1

你有什麼期望是'(\\ W)'的意思?我的意思是你期望與之相匹配,以及它如何反映網站情況? – AKSW

回答

2

模式\w(書面\\w逃脫\)表示一個信,但你期望 w信我的理解。

要匹配3 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/$' 

我想,這個答案將幫助您:How to represent a fix number of repeats in regular expression?

相關問題