Funciones de cadena
Una función de cadena realiza operaciones en datos de texto. Utiliza una función de cadena para limpiar datos, convertir datos a un formato diferente, cambiar mayúsculas y minúsculas, calcular métricas sobre los datos o realizar otras manipulaciones. Utiliza funciones de cadena solo con tipos de datos de cadena.
Contains
Contains (String, Target, CaseInsensitive = 1)
: busca la ocurrencia de una cadena especifica dentro de una cadena. Devuelve verdadero si la cadena (String) contiene el objetivo (Target); si no, devuelve falso.
Ejemplo
Contains('123ABC', 'ABC')
devuelve verdadero.
Contains('123ABC', 'abc')
devuelve verdadero.
Contains('123ABC', 'abc', 0)
devuelve falso.
CountWords
CountWords(string)
: devuelve un conteo de las palabras en una cadena especificada. Las palabras son definidas por caracteres separados por un espacio.
Ejemplo
CountWords("Basic Variables Households")
devuelve 3.
CountWords("Basic Variables Age:Female (Pop)Age 1")
devuelve 5.
DecomposeUnicodeForMatch
DecomposeUnicodeForMatch(String)
: elimina acentos y expande caracteres compuestos mientras convierte a cadena estrecha. Esta función toma un tipo de dato Alteryx
WString
y lo convierte en un tipo de dato de
cadena
estrecho y en minúsculas. Se quitan todos los acentos y otras decoraciones. Consulta
Tipos de datos
para obtener más información acerca de los tipos de datos de Alteryx.
Importante
Esta función es útil sólo para coincidencia. No se considera una cadena normalizada.
La función no está diseñada para usarse con conjuntos de caracteres no occidentales como el japonés. Debes evitar utilizar esta función en cadenas que puedan contener caracteres anchos y tener en cuenta que los caracteres anchos se convierten en ‘?’.
Ejemplo
DecomposeUnicodeForMatch("Prénoms français")
devuelve prenoms francais.
EndsWith
EndsWith(String, Target, CaseInsensitive=1)
: verifica si una cadena termina con una cadena determinada. Devuelve True si la cadena (String) termina con el objetivo (Target), de lo contrario devuelve False. De manera predeterminada, no distingue entre mayúsculas y minúsculas.
Ejemplo
EndsWith('123ABC', 'ABC')
devuelve verdadero.
EndsWith('123ABC', 'abc')
devuelve verdadero.
EndsWith('123ABC', 'abc', 0)
devuelve falso.
FindNth
FindNth(Initial String, Target, Instance)
: encuentra la instancia (ocurrencia enésima) de una cadena objetivo en la cadena inicial y genera la posición de la instancia con índice 0. La función distingue entre mayúsculas y minúsculas, y no acepta parámetros negativos.
Ejemplo
FindNth("Hello World","o",2)
devuelve 7. La función encuentra la segunda instancia de “o” en la cadena proporcionada y devuelve la posición con índice 0, que en este caso es 7.
FindNth("Hello World","World",1)
devuelve 6. La función encuentra la primera instancia de “World” en la cadena proporcionada y devuelve la posición con índice 0 del primer carácter, que en este caso es 6.
FindNth("Hello World","o",1.8)
devuelve 7. La función encuentra la segunda instancia (redondea 1,8 al entero más cercano) de “o” en la cadena proporcionada y devuelve la posición con índice 0 del segundo carácter, que en este caso es 7.
FindNth("Hello World","world",1)
devuelve -1. La función encuentra la primera instancia de “world” en la cadena proporcionada y devuelve la posición con índice 0 del primer carácter, que en este caso es -1 (no se encuentra la coincidencia debido a que se distingue entre mayúsculas y minúsculas).
FindNth("Hello World","l",0)
devuelve -1. La función encuentra la instancia 0 de “l” en la cadena proporcionada y devuelve la posición con índice 0, que en este caso es -1 (no se encuentra, ya que la posición 0 no existe).
FindNth("Hello World","l",-1)
devuelve -1. Los parámetros negativos no son aplicables, por lo que la función devuelve -1 (no se encuentra).
FindNth("Hello World", Null(), 1)
devuelve -1. No se encuentran valores nulos y vacíos.
FindNth(Hello world, "l", 1)
devuelve un error. La función requiere que los dos primeros parámetros sean cadenas.
FindString
Importante
La función
FindString
distingue entre mayúsculas y minúsculas.
FindString(String, Target)
: busca la ocurrencia de un objetivo (Target) dentro de una cadena (String) y devuelve la posición numérica del objetivo dentro de la cadena.
Devuelve el índice de base 0 de la primera ocurrencia del objetivo (Target) en la cadena (String). Devuelve -1 si no hay ocurrencia.
Example
FindString([Name], "John")
returns the 0-based index position of the first character of the target string if the provided string contains the target and returns -1 when the string does not.
FindString("John Smith", "John")
returns 0. The first character ("J") of the target string "John" is in the 0 position of "John Smith."FindString("Michael John Smith", "John")
returns 8. The first character ("J") of the target string "John" is in the 8 position (0-based index) of "Michael John Smith."FindString("David Smith", "John")
returns -1. The target string "John" is not found in the string "David Smith."
GetLeft
GetLeft(String, Delimiter)
: devuelve la parte izquierda de la cadena (String) proporcionada antes de la primera instancia de uno o más delimitadores (Delimiter) especificados.
Operador delimitador
Ten en cuenta que el operador
Delimitador
distingue entre mayúsculas y minúsculas. Si especificas “a” como delimitador, la función solo utiliza “a” como delimitador, no “A”.
Ejemplo
GetLeft("Automated Analytics for All", " ")
devuelve "Automated".
GetLeft("Enable fast, confident decisions across the enterprise.", ",")
devuelve "Enable fast".
GetPart
GetPart(String, Delimiter, Index)
: utiliza un único delimitador (Delimiter) especificado o más para dividir la cadena (String) en subcadenas y devuelve la subcadena especificada en el índice (Index).
Operador delimitador
Ten en cuenta que el operador
Delimitador
distingue entre mayúsculas y minúsculas. Si especificas “a” como delimitador, la función solo utiliza “a” como delimitador, no “A”.
Esta función utiliza un índice basado en 0. Por ejemplo, si Index es 2, la función devuelve la cadena a partir de la posición en el índice 2, que es la tercera subcadena.
Ejemplo
GetPart("Automated Analytics for All", " ", 1)
devuelve "Analytics".
GetPart("Automated Analytics for All", " ", 0)
devuelve "Automated".
GetPart("Enable fast, confident decisions across the enterprise.", ", ", 5)
devuelve "across". Ten en cuenta que este ejemplo utiliza 2 delimitadores: una coma y un espacio. La función divide la cadena cuando encuentra cualquiera de estos delimitadores.
GetPart("January 1, 2023", " ", 2)
devuelve "2023".
GetRight
GetRight(String, Delimiter)
: devuelve la parte derecha de la cadena (String) proporcionada después de la primera instancia de uno o más delimitadores (Delimiter) especificados.
Operador delimitador
Ten en cuenta que el operador
Delimitador
distingue entre mayúsculas y minúsculas. Si especificas “a” como delimitador, la función solo utiliza “a” como delimitador, no “A”.
Ejemplo
GetRight("Automated Analytics for All", " ")
devuelve "Analytics for All".
GetRight("Enable fast, confident decisions across the enterprise.", ",")
devuelve " confident decisions across the enterprise." (nota el espacio antes de
confident
en el resultado).
GetWord
GetWord(string, n)
: devuelve la palabra en la posición n (con base 0) en la cadena (índice de base 0 significa que la primera palabra está en la posición 0, la segunda en la posición 1, y así sucesivamente). Las palabras se definen como una colección de caracteres separados por un espacio, una tabulación, un retorno o un carácter salto de línea. La presencia de varios delimitadores seguidos se trata como un solo delimitador.
Ejemplo
GetWord("Basic Variables Households", 0)
devuelve "Basic".
GetWord("Basic Variables Households", 1)
devuelve "Variables".
Left
Left(String, len)
: devuelve los primeros caracteres (len) en la cadena (String). Si len es menor que 0 o mayor que la longitud de la cadena, la cadena permanece intacta.
Ejemplo
Left("92688", 3)
devuelve el valor “926”.
Length
Length(String)
: devuelve la longitud de la cadena (String).
Aviso
Los resultados de longitud pueden diferir entre esta función de Designer y las funciones de SQL. Esto depende de cómo una base de datos en particular maneja los caracteres anchos y los saltos de línea. Por ejemplo, los caracteres de nueva línea no se cuentan en Length en PostgreSQL mientras que sí se cuentan en la función Length de Designer, y los resultados en Designer pueden diferir dependiendo de si se utiliza el controlador ANSI o el Unicode.
Ejemplo
Length("92688")
devuelve un valor de 5.
LowerCase
LowerCase(String)
: convierte la cadena a texto en minúsculas.
Ejemplo
LowerCase("M1P 1G6")
devuelve "m1p 1g6".
MD5_ASCII
MD5_ASCII(String)
: calcula el hash MD5 de la cadena. Se espera que la cadena contenga solo caracteres estrechos. Los caracteres anchos se convierten en “?” antes de calcular el hash. Se utiliza para tipos de cadena (String); no se recomienda para tipos WString. Debes evitar utilizar esta función en cadenas que puedan contener caracteres anchos.
MD5_UNICODE
MD5_UNICODE(String)
: para el motor original tanto como para AMP, calcula el hash MD5 de la cadena almacenada como UTF-16.
MD5_UTF8
MD5_UTF8(String)
: calcula el hash MD5 de la cadena almacenada como UTF-8.
Ejemplo
Md5_Ascii("Lá")
, almacenado como Latin1, toma 2 bytes, 4C E1. La función calcula el MD5 de los bytes, lo que da el resultado “0c0ee86cc87d87125ad8923562be952e”.
Md5_Ascii("Lá ☢")
, el carácter ☢, que es ancho, se sustituye por un "?", así que es como si estuvieras calculando Md5_Ascii("Lá?"). Se almacena como Latin1 en 3 bytes, 4C E1 3F. La función calcula el MD5 de los bytes, lo que da el resultado “a5a308ab19acf900efea8fc7b5b77b4d”.
Md5_Unicode("Lá")
, almacenado como UTF-16, toma 4 bytes, 4C 00 E1 00. La función calcula el MD5 de los bytes, resultando en "aa9969dfcca04249842cc457e5b3dd01".
Md5_Unicode("Lá ☢")
, cuando se almacena como UTF-16 toma 8 bytes, 4C 00 E1 00 3C D8 C8 DF. La función calcula el MD5 de los bytes, lo que da el resultado “7c4762d93572dd02a8a405232e966b18”.
Md5_Utf8("Lá")
, almacenado como UTF-8, toma 3 bytes, 4C C3 A1. La función calcula el MD5 de los bytes, resultando en "68f00289dc3be140b1dfd4e031d733f1".
Md5_Utf8("Lá ☢")
, cuando se almacena como UTF-8 toma 7 bytes, 4C C3 A1 F0 9F 8F 88. La función calcula el MD5 de los bytes, lo que da el resultado “383fc0355db728a2078ce41a2ab6211b”.
PadLeft
PadLeft (String, len, char)
: rellena la cadena hacia la izquierda con el carácter especificado a la longitud especificada. Si el relleno definido en (carácter) es más de un carácter, solo se usa el primer carácter.
Ejemplo
PadLeft("M", 4, "x")
devuelve "xxxM".
PadRight
PadRight (String, len, char)
: rellena la cadena hacia la derecha con el carácter especificado a la longitud especificada. Si el relleno definido en (carácter) es más de un carácter, solo se usa el primer carácter.
Ejemplo
PadRight("M", 4, "x")
devuelve "Mxxx".
REGEX_CountMatches
REGEX_CountMatches(String,pattern,icase)
: devuelve el conteo de coincidencias con el patrón dentro de la cadena.
icase
es un parámetro opcional. Cuando se especifica, distingue mayúsculas y minúsculas. De manera predeterminada, icase = 1, lo cual significa que no se distingue entre mayúsculas y minúsculas. Si se establece en 0, distingue mayúsculas y minúsculas.
REGEX_Match
REGEX_Match(String,pattern,icase)
: busca la ocurrencia de una expresión regular en una cadena.
Indica si la cadena coincide con el patrón desde el primer carácter hasta el final.
Para buscar algo que no necesariamente comience al principio de la cadena, comienza el patrón con '.*'.
Para buscar algo que no necesariamente va hasta el final de la cadena, termina el patrón con '.*'.
icase
es un parámetro opcional. Cuando se especifica, distingue mayúsculas y minúsculas. De manera predeterminada, icase = 1, lo cual significa que no se distingue entre mayúsculas y minúsculas. Si se establece en 0, distingue mayúsculas y minúsculas.
Ejemplo
REGEX_Match("123-45-6789", "\d{3}-\d{2}-\d{4}")
devuelve -1 (verdadero).
REGEX_Replace
REGEX_Replace(String, pattern, replace, icase)
: permite reemplazar texto mediante expresiones regulares y devuelve la cadena resultante de la función RegEx de buscar (pattern) y reemplazar (string). Todas las ocurrencias de las coincidencias se remplazan, no sólo las primeras.
El parámetro “replace” puede ser un valor especificado, como se muestra a continuación, o un grupo marcado, como “$1”. Asegúrate de que los grupos marcados estén entre comillas dobles.
icase
es un parámetro opcional. Cuando se especifica, distingue mayúsculas y minúsculas.
De manera predeterminada, icase=1, que significa que no distingue mayúsculas y minúsculas.
Si se establece en 0, distingue mayúsculas y minúsculas.
Ejemplo
REGEX_Replace("Don't reveal your Social Security number, 123-45-6789","\d{3}-\d{2}-\d{4}", "CLASSIFIED")
devuelve "Don't reveal your Social Security number, CLASSIFIED".
REGEX_Replace("Change all domain names from alteryx@Alteryx.com","@.*\.", "@extendthereach.")
devuelve "Change all domain names from alteryx@extendthereach.com".
REGEX_Replace("25 test","(\d+)\s.*","$1")
devuelve 25.
Replace
Replace(String, Target, Replacement)
: devuelve la cadena (String) después de reemplazar cada ocurrencia de la cadena (Target) por la cadena (Replacement).
Ejemplo
Replace("Good judgment comes from experience", "experience", "awareness")
devuelve "Good judgment comes from awareness".
ReplaceChar
ReplaceChar(String, y, z)
: devuelve la cadena (String) después de reemplazar cada ocurrencia del carácter (y) por el carácter (z). Si el carácter de reemplazo (z) es una cadena con más de un carácter, sólo se utiliza el primer carácter. Si (z) está vacío, se elimina cualquier carácter de la cadena (String) que coincida con cualquier carácter (y).
Ejemplo
ReplaceChar("abcdefb", "b", "_")
devuelve "a_cdef_".
ReplaceChar("@a#b%c", "@,#,%", "_")
devuelve "_a_b_c".
ReplaceFirst
ReplaceFirst(String, Target, Replacement)
: devuelve la cadena (String) después de reemplazar la primera ocurrencia del objetivo (Target) por la cadena de reemplazo (Replacement).
Ejemplo
ReplaceFirst("abcdefb", "b", "_")
devuelve "a_cdefb".
ReverseString
ReverseString(String)
: invierte todos los caracteres de la cadena.
Ejemplo
ReverseString("abcdefb")
devuelve "bfedcba".
Right
Right(String, len)
: devuelve los últimos caracteres (len) de la cadena. Si len es menor que 0 o mayor que la longitud de la cadena, la cadena permanece intacta.
Ejemplo
Right("92688", 3)
devuelve un valor de “688”.
StartsWith
StartsWith(String, Target, CaseInsensitive=1)
: comprueba si una cadena comienza con una cadena determinada. Devuelve verdadero si la cadena (String) comienza con el objetivo (Target) determinado; si no, devuelve falso.
Ejemplo
StartsWith('ABC123', 'ABC')
devuelve verdadero.
StartsWith('ABC123', 'abc')
devuelve verdadero.
StartsWith('ABC123', 'abc', 0)
devuelve falso.
STRCSPN
STRCSPN(String, y)
: devuelve la longitud del segmento inicial de la cadena (String) que consiste en caracteres que no están en (y).
Ejemplo
STRCSPN("Bob's Amaco", "~!@#$%^&*'()")
devuelve 3. Esta es una prueba útil para asegurarse de que no hay puntuación en la cadena.
StripQuotes
StripQuotes(String)
: elimina un conjunto coincidente de comillas o apóstrofos de los extremos de la cadena.
Ejemplo
StripQuotes("Hello there")
devuelve Hello there.
StripQuotes("'Hello there,' she said.")
devuelve 'Hello there,' she said.
StripQuotes('"Hello there," she said.')
devuelve "Hello there," she said.
STRSPN
STRSPN(String, y)
: devuelve la longitud del segmento inicial de la cadena (String) que consta de caracteres en la cadena (y).
Ejemplo
STRSPN("3034408896x105", "0123456789")
devuelve 10. Esta es una prueba útil para asegurarse de que una cadena tiene de un conjunto de caracteres.
Substring
Substring(String, start, length)
: devuelve la subcadena de la cadena (String) comenzando en (start) y parando después de (length), si se proporciona.
Ejemplo
Substring("949-222-4356", 4, 8)
devuelve "222-4356".
Substring("949-222-4356", 4, 6)
devuelve "222-43".
Substring("949-222-4356", 4)
devuelve "222-4356".
TitleCase
TitleCase(String)
: convierte la primera letra de cada palabra de la cadena en mayúscula.
Ejemplo
TitleCase("john smith")
devuelve "John Smith".
Trim
Trim(String, y)
: elimina los caracteres de (y) de los extremos de la cadena (String). (y) es opcional y predeterminado a recortar espacios en blanco. Nota que en los ejemplos de la función Trim, los caracteres especificados se recortan. No importa en qué orden estén los caracteres.
Ejemplo
Trim("!ver instrucciones!!!", "!")
devuelve “ver instrucciones”.
Trim(" Test123 ")
devuelve "Test123".
TrimLeft
TrimLeft(String, y)
: elimina el carácter en la cadena (y) del principio de la cadena (String). (y) es opcional y predeterminado a recortar espacios en blanco.
Ejemplo
TrimLeft("** special invitation ", " *")
devuelve "special invitation ".
TrimRight
TrimRight(String, y)
: elimina el carácter en la cadena (y) del final de la cadena (String). (y) es opcional y predeterminado a recortar espacios en blanco.
Aunque tú quieras recortar caracteres de una cadena en un conjunto en orden, la función Trim no respeta el orden de los caracteres y trata la cadena como una simple lista. Por lo tanto, recorta TODOS los caracteres especificados en la lista. Si quieres reemplazar una cadena, utiliza una función Replace o una función RegEx en la expresión.
Ejemplo
TrimRight("John Smith ")
devuelve "John Smith".
TrimRight("John Smith**","*")
devuelve "John Smith".
Uppercase
Uppercase(String)
: convierte una cadena a mayúsculas.
Ejemplo
Uppercase(“Juan Pérez”)
devuelve “JUAN PÉREZ”.
Uuid
UuidCreate()
: crea un identificador único.
Ejemplo
UuidCreate()
devuelve un valor único como ba131836-1ba3-4d42-8f7e-b81a99c2e838.
Acerca de longitud y cadenas
Cuando se hace referencia a la longitud de una cadena, el primer carácter se cuenta como 1 (la longitud de la cadena "registro" es 8).
Sin embargo, cuando se hace referencia a la posición del carácter dentro de una cadena, las posiciones son contadas entre los caracteres. Así que piensa en la posición del primer carácter como 0. Por lo tanto, la letra "g" en la cadena "registro" está en la posición 2.