【发布时间】:2015-09-02 11:46:12
【问题描述】:
我有以下 XML:
<activity>
<server>digmspt1p:1043SERVER1</server>
</activity>
我需要使用XQuery 提取字符串,直到端口:
digmspt1p:1043,这意味着在 : 之后的第 4 位。
有没有实现这个的功能?
我只找到了functx:substring-before-last-match,这仅在 SERVER1 不包含数字时才有帮助。
【问题讨论】:
-
我不确定我是否完全理解了这个问题?您正在寻找什么输出?你试过 fn:substring-after 吗?
-
我希望输出:“digmspt1p:1043”。 substring after 不起作用,因为我可能在端口后的字符串中也有数字。我需要在 ':' 之后的第 4 或第 5 个字符之前添加子字符串,因为端口可能也有 5 位数字
-
您在 4th 或 5th 之后的子字符串的确切条件是什么?第 5 个或第 6 个是字母?我认为结合使用 fn:subtring-before() 来保留 'digmspt1p:' 以及 fn:substring-after 和 fn:substring() 使用提取到第 4 个或第 5 个字符的条件作为端口号,你应该是能够胜任这项工作。您也可以尝试为您的完全匹配条件构建一个正则表达式。
-
@loky 很简单。看我的回答。
标签: string substring xquery concat