如何在SPARQL中替换字符串中的非字母数字字符

时间:2017-04-19 01:32:10

标签: sparql

我想从SPARQL中的字符串中删除所有非字母数字字符。以下内容会返回错误:

SELECT * WHERE {

?s ?p ?o .
BIND(REPLACE(?o, "/[^a-zA-Z0-9\s]/", "", "i") AS ?o2) .

}

1 个答案:

答案 0 :(得分:2)

REPLACE仅适用于字符串文字。 ?o通常是一个URI。

此外,您可能需要逃避转义角色。 \s应该\\s或更简单,只需

或者,您可以尝试使用\W通配符(在查询中可能是\\W)。

Try this(样本结果against the DBpedia endpoint) -

SELECT *
WHERE
  {
    ?s  ?p  ?o  .
    BIND(REPLACE(STR(?o), "\\W", "", "i") AS ?o2) .
  }
LIMIT 5