我的查询有问题。我需要搜索变量,如果字符串中有.
,我需要将该特定字符替换为_
。
我可以替换空点和-
,但我在更换点时遇到问题。
BIND(replace(?input,".","_") AS ?output) .
我尝试过使用/.
,//.
,\.
,\\.
,基本上只有结果是相同的。
Lexical error. Encountered: "<" <40>, after: "replace"
提前谢谢。
答案 0 :(得分:6)
使用\\.
转义点。您还可能希望使用STR
转换为字符串:
BIND(REPLACE(STR(?input),"\\.","_") AS ?output) .
你也可以用相同的替换替换所有字符(这里你不需要逃避点):
BIND(REPLACE(STR(?input),"[. -]","_") AS ?output) .
REPLACE
将正则表达式作为第二个参数,这就是为什么你需要在第一个参数中转义点。在第二个中,不需要转义,因为点在字符类中。