我想要实现的目标:
对于给定的字符串(AA012345
),我需要检查字符串中索引3处的值,如果是0
我需要将其删除并删除{{{}处的空格1}}本来就是。
我尝试了一些不同的事情 - 如果0
是substring(., 3,1)
,请替换为'',但这不起作用。如果0
为substring(., 3,1)
,请删除字符,然后尝试删除空格。
非常感谢任何建议或示例。
仅限于使用XQuery 1.0。
谢谢
答案 0 :(得分:1)
可以通过将字符串分解为三个块(位置3,位置3,位置3之后)并在中间块上重新组装它来完成:
xquery version "1.0";
let $string := "AA012345"
let $start := substring($string, 0, 3)
let $middle := substring($string, 3, 1)
let $end := substring($string, 4)
return concat($start, $middle[. ne "0"], $end)
也可以使其更加冗长以进行优化。如果位置3不是零,则不需要评估所有let子句。
xquery version "1.0";
let $string := "AA012345"
let $start := substring($string, 0, 3)
let $middle := substring($string, 3, 1)
let $end := substring($string, 4)
return if($middle eq "0")
then concat($start, $end)
else $string
答案 1 :(得分:1)
更简单:replace("AA012345","^(.{2})(0)(.*)$","$1$3")