使用 XPath,我想“匹配整个单词”(用户选项,就像在 VS 搜索中一样)。
尽管 match 允许使用不区分大小写的标志,但似乎功能contains
和matches
工作方式相似。i
换句话说,我通过这两个 XPath 查询得到了相同的结果:
<pets>
<dog name="Rupert" color="grey"/>
<dog name="Ralph" color="brown"/>
<cat name="Marvin the Cat" color="white"/>
<cat name="Garfield the Cat" color="orange"/>
<cat name="Cat" color="grey"/>
<cat name="Fluffy" color="black"/>
</pets>
Matches XPath: //cat[descendant-or-self::*[@*[matches(.,'Cat')]]]
returns:
<cat name="Marvin the Cat" color="white"/>
<cat name="Garfield the Cat" color="orange"/>
<cat name="Cat" color="grey"/>
Contains XPath: //cat[descendant-or-self::*[@*[contains(.,'Cat')]]]
returns:
<cat name="Marvin the Cat" color="white"/>
<cat name="Garfield the Cat" color="orange"/>
<cat name="Cat" color="grey"/>
但我想matches
用来返回匹配“猫”整个单词的结果:
<cat name="Cat" color="grey"/>
如何调整匹配查询以匹配整个单词?
编辑:我忘了提到我仍然需要使用 match 函数,因为我需要不区分大小写的标志。