SPARQL 替换“.”到 ”_”

SPARQL replace "." to "_"

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

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 将正则表达式作为第二个参数,这就是为什么您需要转义第一个参数中的点。在第二个中不需要转义,因为点在字符 class.