Używając XPath, chciałbym "Dopasować całe słowo" (opcja dla użytkownika, podobnie jak w wyszukiwaniu VS).XPath: Dopasuj całe słowo (używając funkcji dopasowywania z flagą niewrażliwą na wielkość znaków)
Wygląda na to, że funkcje działają podobnie, mimo że dopasowania pozwalają na takie znaczniki jak i
dla rozróżniania wielkości liter.
Innymi słowy, ja dostaję te same wyniki z tymi zapytaniami dwa 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"/>
Ale chciałbym użyć matches
aby powrócić wyników, które pasują „Cat” cały tylko słowo:
<cat name="Cat" color="grey"/>
Jak dopasować zapytanie dopasowania tak, aby pasowało do całego słowa?
EDYCJA: Zapomniałem wspomnieć, że muszę nadal używać funkcji dopasowania, ponieważ potrzebuję flagi niewrażliwości na wielkość liter.
Hmm ... to daje mi pożądany rezultat. Ale czy mógłbyś wyjaśnić kotwice^$? Nigdy ich wcześniej nie użyłem. – developer
Dodałem link do odpowiedzi, zobacz sekcję "Dwa meta-znaki ...". –
Dzięki, nadal będę musiał przeprowadzić pewne testy, ale to chyba wystarczy! – developer