SPARQL 将 "."替换为 "_"

标签 sparql

我的查询有问题。我需要搜索变量,如果有 .在字符串中,我需要将该特定字符替换为 _ .
我可以替换空点和-但我在替换点时遇到问题。

BIND(replace(?input,".","_") AS ?output) .

我也试过用 /. , //. , \. , \\. ,基本上任何东西,但结果是一样的。
Lexical error. Encountered: "<" <40>, after: "replace"

先感谢您。

最佳答案

\\. 转义点.您可能还想使用 STR 转换为字符串:
BIND(REPLACE(STR(?input),"\\.","_") AS ?output) .
您还可以使用相同的替换替换所有字符(这里您不需要转义点):
BIND(REPLACE(STR(?input),"[. -]","_") AS ?output) .REPLACE将正则表达式作为第二个参数,这就是为什么您需要转义第一个参数中的点。在第二个中,不需要转义,因为点在字符类内。

关于SPARQL 将 "."替换为 "_",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37270336/

相关文章:

eclipse - 使用 Java 对 DBPedia 进行 SPARQL 查询

sparql - Wikidata - 尽管检索到结果,resultset.hasNext() 仍返回 false

sparql - 如何解决Yago/DBpedia中的消歧问题?

java - Sparql 查询永远运行

service - 发现 SPARQL 端点的版本

python - SPARQL 查询给出意外结果

math - SPARQL 查询中的对数函数

rdf - 如何获取sparql查询结果的所有解引用链接

sparql - 如何使用 SPARQL 通过 ID 获取 Wikidata 标签?

sparql - MarkLogic:通过三重范围查询约束来约束 SPARQL 查询范围