Funciones XSLT y XPath
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
replace | XPath |
La función fn:replace se utiliza para sustituir partes de una cadena mediante una expresión regular. La cadena de entrada se introduce en el primer argumento, en el segundo se introducirá la expresión regular y en el tercer argumento la cadena con la que se reemplazarán las partes de la cadena en cuestión.
En la comparación entre la cadena de entrada y la expresión regular se diferenciará por defecto entre mayúsculas y minúsculas. No obstante, se ignorarán los saltos de línea. En el cuarto argumento se podrá establecer el modo mediante un flag. Por ejemplo, 'i' para no diferenciar entre mayúsculas y minúsculas, 'm' para tener en cuenta los saltos de línea, o 'x' para tener en cuenta los espacios en blanco en la expresión regular.
Una secuencia vacía devolverá en el resultado una secuencia vacía. No se permitirá una secuencia vacía en el argumento para la expresión regular. A menudo se introduce una secuencia vacía en el tercer argumento. De esta manera se eliminarán las partes de la cadena correspondientes.
La expresión regular no tiene que consistir necesariamente en una parte de la cadena a reemplazar. Es posible introducir condiciones de comparación complejas que permitan reemplazar varios segmentos de una cadena. Por ejemplo: "(subcadena1|subcadena2)". Además es posible mediante claves obtener más variaciones:
- El punto (.) representa cualquier carácter.
- Una expresión será válida con o sin el carácter que antecede al signo de interrogación (?).
- Un signo más (+) hará que se reconozca el carácter que lo antecece tanto si aparece una o repetidas veces.
- Con asterisco (*) se mostrará la expresión si el carácter aparece una vez, ninguna, o en repetidas ocasiones.
Argumentos
Cadena, cuyas subcadenas se desea reemplazar
Es obligatorio, pero puede ser una secuencia vacía.
Tipo: xs:string
Expresión regular que filtrará las subcadenas
Obligatorio
Tipo: xs:string
Cadena de sustitución que reemplazará a las subcadenas
Es obligatorio, pero puede ser una secuencia vacía.
Tipo: xs:string
Carácter para definir el modo
Opcional
Tipo: xs:string
Valor de salida
Cadena compuesta por la cadena de entrada y la cadena de reemplazo
Tipo: xs:string
Ejemplo
replace('DATEN2type', 'daten', 'data')
Resultado: DATEN2type
Se diferencia entre mayúsculas y minúsculas por defecto.
Ejemplo
replace('DATEN2type', 'daten', 'data', 'i')
Resultado: data2type
Con el flag 'i' no se diferenciará entre mayúsculas y minúsculas.
Ejemplo
replace('datas2type', 's', '')
Resultado: data2type
Ejemplo
replace('', 'hola', 'hola mundo')
Resultado:
Ejemplo
replace('', '', 'hola mundo', 'i')
Resultado: Aviso de error: The regular expression in replace() must not be one that matches a zero-length string; URL: www.w3.org/TR/2005/WD-xpath-functions-20050211/
Ejemplo
replace('taaaaat', '(ta)|(at)', 'x')
Ergebnis: xaaax
Ejemplo
replace('data2type', 'ta?', 'x')
Resultado: dax2xype
Todas las subcadenas compuestas por 'ta' o por 't', se sustituirán por 'x'.
Ejemplo
replace('data2type', 't.', 'x')
Resultado: dax2xpe
Se debe tener en cuenta el punto detras de la 't' en la expresión regular. Esto significa que cada subcadena que comience por 't' y esté seguida de cualquier carácter será reemplazada.
Ejemplo
replace('dataa2type', 'a+', 'x')
Resultado: dxtx2type
Ejemplo
replace('dataa2type', 'd.*', 'xml')
Resultado: xml
La expresión regular coincide con una subcadena que empieza por 'd' y es seguida por un número indefinido de caracteres. Puesto que la cadena empieza por 'd', la expresión regular coincide con la cadena de entrada completa.
> Volver a la referencia alfabética de XSLT y XPATH |