La función Text.BetweenDelimiters devuelve la subcadena de un string que haya entre dos delimitadores.
Text.BetweenDelimiters(
text as nullable text,
startDelimiter as text,
endDelimiter as text,
optional startIndex as any,
optional endIndex as any
) as any
- text: cadena de texto de la que extraer la subcadena
- startDelimiter: delimitador que precede a la subcadena a devolver
- endDelimiter: delimitador que sigue a la subcadena a devolver
- startIndex: (opcional) número de ocurrencias del delimitador a ignorar antes de determinar el que va a preceder a la subcadena a devolver
- endIndex: (opcional) número de ocurrencias del delimitador a ignorar antes de determinar el que va a seguir a la subcadena a devolver, número relativo a startIndex
Por defecto, la función Text.BetweenDelimiters va a buscar la primera aparición de startDelimiter y va a devolver todo el string entre dicha posición y la primera aparición (posterior a startDelimiter) de endDelimiter:
Text.BetweenDelimiters("2020.04.19.14", ".", ".")
"04"
Obsérvese que el endDelimiter que determina el final de la subcadena a devolver es el primero que siga a startDelimiter. Es decir, si existe algún endDelimiter antes del startDelimiter, se ignora. De esta forma, en el siguiente ejemplo queremos extraer la cadena que siga a la primera aparición del carácter "." y que preceda al carácter "/" (a la primera aparición del carácter "/" tras el "."), por lo que se ignora el "/" que hay al principio de la cadena de texto:
Text.BetweenDelimiters("/2020.04/19.14", ".", "/")
"04"
Si se incluye el parámetro startIndex, se ignorará dicho número de delimitadores de comienzo ("startDelimiter"). En el siguiente ejemplo el delimitador que marca el comienzo de la cadena a devolver es el carácter ".", pero se indica que se ignore el primero, por lo que la función devuelve el texto "14":
Text.BetweenDelimiters(
"/2020.04/19.14/20.10",
".", "/",
1
)
"14"
En este otro ejemplo, se incluye tanto el parámetro startIndex como el parámetro endIndex. Concretamente se especifica que se salte el primer carácter "." antes de considerar el que va a determinar el comienzo de la cadena a devolver, y que se salte el primer carácter "/" tras el carácter anterior antes de determinar el que va a marcar el final de la cadena a devolver:
Text.BetweenDelimiters(
"/2020.04/19.14/20.10/07",
".", "/",
1, 1
)
"14/20.10"