XPath: Dopasuj całe słowo (użycie funkcji dopasowań z flagą niewrażliwą na wielkość liter)

Używając XPath, chciałbym „Dopasować całe słowo” (opcja dla użytkownika, tak jak w wyszukiwaniu VS).

Wygląda to na funkcjecontains imatches działają podobnie, chociaż mecze umożliwiają takie flagii dla niewrażliwości na wielkość liter.

Innymi słowy, otrzymuję te same wyniki z tymi dwoma zapytaniami XPath:

<code><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"/>
</code>

Ale chciałbym użyćmatches aby zwrócić wyniki pasujące tylko do całego słowa „Kot”:

<code><cat name="Cat" color="grey"/>
</code>

Jak mogę dopasować zapytanie dopasowania, aby pasowało do całego słowa?

EDYCJA: Zapomniałem wspomnieć, że muszę nadal używać funkcji dopasowań, ponieważ potrzebuję flagi niewrażliwości na wielkość liter.

questionAnswers(5)

yourAnswerToTheQuestion