2016-08-15 3 views
0

특정 웹 사이트에 해당하는 Wikidata 리소스를 찾고 싶습니다. 이것은 어떤 결과를 반환하지 않습니다 내 쿼리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 편지를 기대합니다.

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?