regex xslt xslt-2.0 word-boundary

¿Cómo encontrar una palabra dentro del texto usando XSLT 2.0 y REGEX(que no tiene / b límite de palabras)?



xslt-2.0 word-boundary (2)

Puede usar la alternancia para evitar la repetición:

<xsl:if test="matches($prose, concat(''(^|/W)'', $word, ''($|/W)''),''i'')">

Estoy intentando escanear una cadena de palabras y buscar la presencia de una palabra en particular (sin distinción entre mayúsculas y minúsculas) en una hoja de estilos XSLT 2.0 usando REGEX.

Tengo una lista de palabras que deseo iterar y determinar si existen o no dentro de una cadena dada.

Quiero hacer coincidir una palabra en cualquier lugar dentro del texto dado, pero no quiero coincidir con una palabra (es decir, una búsqueda de foo no debe coincidir en " foo d" y una búsqueda de bar no debe coincidir en "rebar") )

XSLT 2.0 REGEX no tiene un límite de palabra ( /b ), así que necesito replicarlo lo mejor que pueda.


Si su procesador XSLT 2.0 es Saxon 9, entonces puede usar la sintaxis de expresiones regulares de Java (incluyendo / b) con las funciones matches, tokenize y replace iniciando el atributo flag con un signo de exclamación:

<xsl:value-of select="matches(''all foo is bar'', ''/bfoo/b'', ''!i'')"/>

Michael Kay mencionó esa opción recientemente en la lista de correo de XSL.