删除字符并删除XQUERY中的空格

时间:2016-08-09 11:37:22

标签: xml xquery

我想要实现的目标:

对于给定的字符串(AA012345),我需要检查字符串中索引3处的值,如果是0我需要将其删除并删除{{{}处的空格1}}本来就是。

我尝试了一些不同的事情 - 如果0substring(., 3,1),请替换为'',但这不起作用。如果0substring(., 3,1),请删除字符,然后尝试删除空格。

非常感谢任何建议或示例。

仅限于使用XQuery 1.0。

谢谢

2 个答案:

答案 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")