XPath:如何使用A B-AB搜索A B ?? AB或AB?-AB

时间:2013-09-25 14:28:28

标签: xpath match

如果你有一个String,我们假设:AB--AB。我想查找具有xpath的节点,该节点可以是AB??AB,这意味着节点属性中的问号是某种占位符 - 并且它们的出现次数可能不同,因此它也应该匹配到例如AB?-AB。 你怎么解决这个问题?

2 个答案:

答案 0 :(得分:2)

XPath 2.0具有正则表达式支持:matches($string, 'AB.{0,2}AB')匹配,如果字符串是文字AB的序列,后跟零,一个或两个任意字符后跟文字AB

答案 1 :(得分:2)

使用XPath 1.0,您必须坚持使用substring(....)substring-before(....)substring-after(....)starts-with(...)string-length(...)。可悲的是,甚至没有ends-with(...)功能。

允许所有字符串以" AB"开头和结尾的可能解决方案至少中间的人物可能是(我对你的需求并不完全确定):

//foo[
    starts-with(., 'AB')
  and
    substring(., string-length(.)-1, 2) = 'AB'
  and
    string-length(.) >= 6
  ]