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