我需要使用以下模式从 XPath 1.0 中的值解析子字符串:
ValueOfInterestStartOfPattern-1.2.xyz
带"-1.2"可以是可选的。我需要获得:
ValueOfInterest
有没有一个功能可以做到这一点?
有没有一个功能可以做到这一点?
是的:substring-before()
。
例如:
substring-before('ValueOfInterestStartOfPattern-1.2.xyz', 'StartOfPattern')
返回: "ValueOfInterest"
.
编辑
我现在才注意到字符串的"xyz"部分不是可选的。你应该把它写成:
"ValueOfInterestStartOfPatternAnythingEndOfPattern"
使您的意图更清晰。要确保存在EndOfPattern
("xyz")部分,请使用:
substring-before(substring-before($string, 'EndOfPattern'), 'StartOfPattern')
例如:
substring-before(substring-before('ValueOfInterestStartOfPatternEndOfPattern', 'EndOfPattern'), 'StartOfPattern')
返回: "ValueOfInterest"
;
substring-before(substring-before('ValueOfInterestStartOfPatternAnythingEndOfPattern', 'EndOfPattern'), 'StartOfPattern')
返回: "ValueOfInterest"
;
substring-before(substring-before('ValueOfInterestStartOfPattern', 'EndOfPattern'), 'StartOfPattern')
返回一个空字符串;
substring-before(substring-before('ValueOfInterestStartOfPatternAnything', 'EndOfPattern'), 'StartOfPattern')
返回一个空字符串。