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.