使用 SPARQL replace 转为小写
Turn to lowercase using SPARQL replace
您好,我正在尝试简单地编写一个将字符串中的某些字母小写的函数,但没有成功。
这是我写的:
SELECT *
WHERE {
BIND (REPLACE ("HELLO", "L", LCASE("[=10=]") ) AS ?var)
}
我回来“HELLO
”。
我在此处 https://www.w3.org/TR/xpath-functions/#func-replace 遵循了“$x
”的规范。
但是如果我写
SELECT *
WHERE {
BIND (REPLACE ("HELLO", "L", LCASE("[=11=]HI") ) AS ?var)
}
我回来“HELhiLhiO
”。
为什么 LCASE
不能应用于 $x
?
将LCASE
应用于字符串,然后将结果传递给REPLACE
函数,就像写“function(1+2)”一样——函数get passed 3,不是 1+2
.
所以 LCASE 不应用于 [=14=]
的值,而是应用于字符串“$0”。
LCASE("[=15=]HI")
是“$0hi”。
REPLACE
执行为:
REPLACE ("HELLO", "L", "[=10=]hi")
并且每个“L”都被“$0hi”替换,其中 $0 被替换为“L”。
您好,我正在尝试简单地编写一个将字符串中的某些字母小写的函数,但没有成功。
这是我写的:
SELECT *
WHERE {
BIND (REPLACE ("HELLO", "L", LCASE("[=10=]") ) AS ?var)
}
我回来“HELLO
”。
我在此处 https://www.w3.org/TR/xpath-functions/#func-replace 遵循了“$x
”的规范。
但是如果我写
SELECT *
WHERE {
BIND (REPLACE ("HELLO", "L", LCASE("[=11=]HI") ) AS ?var)
}
我回来“HELhiLhiO
”。
为什么 LCASE
不能应用于 $x
?
将LCASE
应用于字符串,然后将结果传递给REPLACE
函数,就像写“function(1+2)”一样——函数get passed 3,不是 1+2
.
所以 LCASE 不应用于 [=14=]
的值,而是应用于字符串“$0”。
LCASE("[=15=]HI")
是“$0hi”。
REPLACE
执行为:
REPLACE ("HELLO", "L", "[=10=]hi")
并且每个“L”都被“$0hi”替换,其中 $0 被替换为“L”。