我想从SPARQL中的字符串中删除所有非字母数字字符。以下内容会返回错误:
SELECT * WHERE {
?s ?p ?o .
BIND(REPLACE(?o, "/[^a-zA-Z0-9\s]/", "", "i") AS ?o2) .
}
答案 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