SPARQL替换“。”至 ”_”

时间:2016-05-17 07:57:26

标签: sparql

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

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

我尝试过使用/.//.\.\\.,基本上只有结果是相同的。

Lexical error. Encountered: "<" <40>, after: "replace"

提前谢谢。

1 个答案:

答案 0 :(得分:6)

使用\\.转义点。您还可能希望使用STR转换为字符串:

BIND(REPLACE(STR(?input),"\\.","_") AS ?output) .

你也可以用相同的替换替换所有字符(这里你不需要逃避点):

BIND(REPLACE(STR(?input),"[. -]","_") AS ?output) .

REPLACE将正则表达式作为第二个参数,这就是为什么你需要在第一个参数中转义点。在第二个中,不需要转义,因为点在字符类中。