Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XPath:如何用AB--AB搜索AB??AB或AB?-AB_Xpath_Match - Fatal编程技术网

XPath:如何用AB--AB搜索AB??AB或AB?-AB

XPath:如何用AB--AB搜索AB??AB或AB?-AB,xpath,match,Xpath,Match,如果您有一个字符串,让我们假设:AB--AB。我想查找xpath节点,xpath可以是AB??AB,这意味着节点属性中的问号是某种占位符,它们的出现量可能不同,因此它也应该与AB?匹配。 如何解决这个问题?XPath 2.0提供了正则表达式支持:匹配($string,'AB.{0,2}AB')如果字符串是一个literalAB序列,后跟零、一个或两个任意字符,后跟literalAB,那么它将匹配 XPath2.0具有正则表达式支持:matches($string,'AB.{0,2}AB')如果字

如果您有一个字符串,让我们假设:
AB--AB
。我想查找xpath节点,xpath可以是
AB??AB
,这意味着节点属性中的问号是某种占位符,它们的出现量可能不同,因此它也应该与
AB?
匹配。
如何解决这个问题?

XPath 2.0提供了正则表达式支持:
匹配($string,'AB.{0,2}AB')
如果字符串是一个literal
AB
序列,后跟零、一个或两个任意字符,后跟literal
AB
,那么它将匹配

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

使用XPath 1.0,您必须坚持使用
子字符串(…)
子字符串在(…)
之前,
子字符串在(…)
之后,
以(…)
字符串长度(…)
开头。遗憾的是,甚至没有以(…)结尾的
函数

允许所有以“AB”开头和结尾的字符串以及至少两个字符之间的字符串的可能解决方案是(我不完全确定您的需要):

//foo[
以(,'AB'开头)
和
子字符串(,字符串长度(.)-1,2)='AB'
和
字符串长度(.)>=6
]

在XPath 1.0中,您必须坚持使用
子字符串(…)
子字符串在(…)
之前,
子字符串在(…)
之后,
以(…)
字符串长度(…)
开头。遗憾的是,甚至没有以(…)
结尾的
函数

允许所有以“AB”开头和结尾的字符串以及至少两个字符之间的字符串的可能解决方案是(我不完全确定您的需要):

//foo[
以(,'AB'开头)
和
子字符串(,字符串长度(.)-1,2)='AB'
和
字符串长度(.)>=6
]

我喜欢您编写xpath表达式的方式..:)语法样式。So+1我喜欢您编写xpath表达式的方式..:)语法样式。So+1