Usando XPath, me gustaría "Coincidir palabra completa" (opción para el usuario, al igual que en la búsqueda VS).XPath: Coincide con la palabra completa (usando la función de coincidencias con indicador insensible a mayúsculas y minúsculas)
Parece que las funciones contains
y matches
funcionan de manera similar aunque las coincidencias permiten indicadores como i
para la insensibilidad de mayúsculas y minúsculas.
En otras palabras, estoy consiguiendo los mismos resultados con estas consultas dos 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"/>
pero me gustaría utilizar matches
para devolver resultados que coinciden con "gato" Sólo palabras completas:
<cat name="Cat" color="grey"/>
¿Cómo puedo ajustar la consulta de coincidencias para que coincida con la palabra completa?
EDIT: Olvidé mencionar que todavía necesito usar la función de coincidencias porque necesito el indicador de insensibilidad de mayúsculas y minúsculas.
Hmm ... esto me da el resultado que quiero. ¿Pero podrías explicar los^$ anclajes? Nunca los he usado antes ... – developer
Agregué un enlace a una respuesta, vea la sección "Dos metacaracteres ...". –
¡Gracias, todavía necesitaré hacer algunas pruebas, pero esto parece hacer el truco! – developer