Funções de cadeia de caracteres
Uma função de cadeia de caracteres executa operações em dados de texto. Utilize uma função de cadeia de caracteres para limpar dados, converter dados a um formato diferente, modificar o uso de maiúsculas, calcular métricas sobre os dados ou executar outras manipulações. Use funções de cadeia de caracteres somente com tipos de dados de cadeia de caracteres (qualquer um dos tipos String).
Contains
Contains(String, Target, CaseInsensitive=1)
: procura pela ocorrência de uma cadeia específica (Target) dentro de uma cadeia de caracteres (String). Retorna verdadeiro se a cadeia de caracteres (String) contém a sequência-alvo (Target); senão, retorna falso.
Exemplo
Contains('123ABC', 'ABC')
retorna verdadeiro.
Contains('123ABC', 'abc')
retorna verdadeiro.
Contains('123ABC', 'abc', 0)
retorna falso.
CountWords
CountWords(string)
: retorna a contagem das palavras na cadeia de caracteres especificada. Palavras são definidas por caracteres separados por um espaço.
Exemplo
CountWords("Basic Variables Households")
retorna 3.
CountWords("Basic Variables Age:Female (Pop)Age 1")
retorna 5.
DecomposeUnicodeForMatch
DecomposeUnicodeForMatch(String)
: remove acentos e expande caracteres compostos ao convertê-los para uma cadeia de caracteres estreita. Essa função pega dados do tipo
WString
do Alteryx e os converte para o tipo estreito
String
, com letras minúsculas. Todos os acentos e similares são removidos. Consulte
Tipos de dados
para obter mais informações sobre os tipos de dados do Alteryx.
Importante
Essa função é útil somente para correspondência. O resultado não é considerado uma cadeia normalizada.
A função não foi criada para ser usada com conjuntos de caracteres não ocidentais, como os japoneses. Evite usá-la em cadeias que possam conter caracteres largos (esses caracteres são convertidos para "?").
Exemplo
DecomposeUnicodeForMatch("Prénoms français")
retorna "prenoms francais".
EndsWith
EndsWith(String, Target, CaseInsensitive=1)
: verifica se uma cadeia de caracteres termina com a sequência-alvo especificada. Retorna verdadeiro se a cadeia de caracteres termina com a sequência-alvo; senão, retorna falso. Por padrão, não diferencia maiúsculas de minúsculas.
Exemplo
EndsWith('123ABC', 'ABC')
retorna verdadeiro.
EndsWith('123ABC', 'abc')
retorna verdadeiro.
EndsWith('123ABC', 'abc', 0)
retorna falso.
FindNth
FindNth(Initial String, Target, Instance)
: encontra a instância (enésima ocorrência) da sequência-alvo na cadeia de caracteres inicial e retorna a posição indexada em 0 da instância. A função diferencia maiúsculas de minúsculas e não aceita parâmetros negativos.
Exemplo
FindNth("Hello World","o",2)
retorna 7. A função encontra a segunda instância de "o" na cadeia de caracteres fornecida e retorna a posição indexada em 0, que neste caso é 7.
FindNth("Hello World","World",1)
retorna 6. A função encontra a primeira instância de "World" na cadeia de caracteres fornecida e retorna a posição indexada em 0 do primeiro caractere, que neste caso é 6.
FindNth("Hello World","o",1.8)
retorna 7. A função encontra a segunda instância de "o" (arredonda 1,8 para o inteiro mais próximo) na cadeia de caracteres fornecida e retorna a posição indexada em 0 do segundo caractere, que neste caso é 7.
FindNth("Hello World","world",1)
retorna -1. A função encontra a primeira instância de "world" na cadeia de caracteres fornecida e retorna a posição indexada em 0 do primeiro caractere, que neste caso é -1 (correspondência não encontrada devido à diferenciação de maiúsculas e minúsculas).
FindNth("Hello World","l",0)
retorna -1. A função encontra a instância 0 de "l" na cadeia de caracteres fornecida e retorna a posição indexada em 0, que neste caso é -1 (não encontrada porque a posição 0 não existe).
FindNth("Hello World","l",-1)
retorna -1. Parâmetros negativos não são aplicáveis, por isso a função retorna -1 (não encontrado).
FindNth("Hello World", Null(), 1)
retorna -1. Nulos e vazios não são encontrados.
FindNth(Hello world, "l", 1)
retorna um erro. A função requer que os dois primeiros parâmetros sejam cadeias de caracteres.
FindString
Importante
A função
FindString
diferencia maiúsculas de minúsculas.
FindString(String, Target)
: procura pela ocorrência de uma sequência-alvo em uma cadeia de caracteres e retorna a posição numérica dessa ocorrência.
Retorna o índice de base 0 da primeira ocorrência da sequência-alvo (Target) na cadeia de caracteres (String). Retorna -1 se não houver ocorrência.
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)
: retorna a parte esquerda da cadeia de caracteres fornecida (String) até a primeira instância do delimitador ou delimitadores especificados (Delimiter).
Operador de delimitador
Observe que o operador Delimiter
diferencia maiúsculas e minúsculas. Se você especificar "a" como o delimitador, a função usará apenas "a", não "A".
Exemplo
GetLeft("Automated Analytics for All", " ")
retorna "Automated".
GetLeft("Enable fast, confident decisions across the enterprise.", ",")
retorna "Enable fast".
GetPart
GetPart(String, Delimiter, Index)
: usa o delimitador ou delimitadores especificados (Delimiter) para dividir a cadeia de caracteres (String) em subcadeias, e retorna a subcadeia na posição em que é especificada no índice (Index).
Operador de delimitador
Observe que o operador Delimiter
diferencia maiúsculas e minúsculas. Se você especificar "a" como o delimitador, a função usará apenas "a", não "A".
Essa função usa um índice de base 0. Por exemplo, se o índice for 2, a função retornará a cadeia de caracteres da posição no índice 2, que é a terceira subcadeia de caracteres.
Exemplo
GetPart("Automated Analytics for All", " ", 1)
retorna "Analytics".
GetPart("Automated Analytics for All", " ", 0)
retorna "Automated".
GetPart("Enable fast, confident decisions across the enterprise.", ", ", 5)
retorna "across". Observe que esse exemplo usa dois delimitadores: uma vírgula e um espaço. A função divide a cadeia de caracteres quando ela encontra qualquer um desses delimitadores.
GetPart("January 1, 2023", " ", 2)
retorna "2023".
GetRight
GetRight(String, Delimiter)
: retorna a parte direita da cadeia de caracteres fornecida (String) após a primeira instância do delimitador ou delimitadores especificados (Delimiter).
Operador de delimitador
Observe que o operador Delimiter
diferencia maiúsculas e minúsculas. Se você especificar "a" como o delimitador, a função usará apenas "a", não "A".
Exemplo
GetRight("Automated Analytics for All", " ")
retorna "Analytics for All".
GetRight("Enable fast, confident decisions across the enterprise.", ",")
retorna " confident decisions across the enterprise." (observe o espaço antes de
confident
no resultado).
GetWord
GetWord(string, n)
: retorna a enésima palavra (base 0) na cadeia de caracteres (índice de base 0 significa que a primeira palavra está na posição 0, a segunda está na posição 1 e assim por diante). Palavras são definidas como um grupo de caracteres separados por um espaço, tabulação, retorno ou caractere de nova linha. Múltiplos delimitadores consecutivos são tratados como um único delimitador.
Exemplo
GetWord("Basic Variables Households", 0)
retorna "Basic".
GetWord("Basic Variables Households", 1)
retorna "Variables".
Left
Left(String, len)
: retorna os primeiros caracteres (número determinado em len) da cadeia (String). Se len for menor que 0 ou maior que o comprimento da cadeia de caracteres, esta permanecerá inalterada.
Exemplo
Left("92688", 3)
retorna o valor 926.
Length
Length(String)
: retorna o comprimento da cadeia de caracteres.
Atenção
Os resultados de comprimento podem ser diferentes entre essa função do Designer e as funções SQL. Isso depende de como qualquer banco de dados específico lida com caracteres largos e quebras de linha. Por exemplo, os caracteres de nova linha não são contados em "Length" no PostgreSQL, enquanto são contados na função Length do Designer, e os resultados no Designer podem ser diferentes dependendo se um driver ANSI ou Unicode for usado.
Exemplo
Length("92688")
retorna o valor 5.
LowerCase
LowerCase(String)
: converte a cadeia de caracteres em letras minúsculas.
Exemplo
LowerCase("M1P 1G6")
retorna "m1p 1g6".
MD5_ASCII
MD5_ASCII(String)
: calcula o hash MD5 da cadeia de caracteres. A cadeia de caracteres deve ter apenas caracteres estreitos. Caracteres largos são convertidos em "?" antes de calcular o hash. Use essa função para o tipo String, ela não é recomendada para o tipo WString. Evite usar essa função em cadeias de caracteres que possam conter caracteres largos.
MD5_UNICODE
MD5_UNICODE(String)
: tanto para o motor original quanto para o AMP, calcula o hash MD5 da cadeia de caracteres armazenada como UTF-16.
MD5_UTF8
MD5_UTF8(String)
: calcula o hash MD5 da cadeia de caracteres armazenada como UTF-8.
Exemplo
Md5_Ascii("Lá")
, armazenado como Latin1, são necessários 2 bytes, 4C E1. A função calcula o MD5 dos bytes, fornecendo o resultado "0c0ee86cc87d87125ad8923562be952e".
Md5_Ascii("Lá ☢")
, o caractere ☢, por ser largo, é substituído por "?". É como se você estivesse calculando Md5_Ascii("Lá?"). É armazenado como Latin1 em 3 bytes, 4C E1 3F. A função calcula o MD5 dos bytes, fornecendo o resultado "a5a308ab19acf900efea8fc7b5b77b4d".
Md5_Unicode("Lá")
, armazenado como UTF-16, são necessários 4 bytes, 4C 00 E1 00. A função calcula o MD5 dos bytes, fornecendo o "aa9969dfcca04249842cc457e5b3dd01".
Md5_Unicode("Lá ☢")
, quando armazenado como UTF-16, são necessários 8 bytes, 4C 00 E1 00 3C D8 C8 DF. A função calcula o MD5 dos bytes, fornecendo o resultado: "7c4762d93572dd02a8a405232e966b18".
Md5_Utf8("Lá")
, armazenado como UTF-8, são necessários 3 bytes, 4C C3 A1. A função calcula o MD5 dos bytes, fornecendo o "68f00289dc3be140b1dfd4e031d733f1".
Md5_Utf8("Lá ☢")
, quando armazenado como UTF-8, são necessários 7 bytes, 4C C3 A1 F0 9F 8F 88. A função calcula o MD5 dos bytes, fornecendo o resultado "383fc0355db728a2078ce41a2ab6211b".
PadLeft
PadLeft (String, len, char)
: preenche o lado esquerdo da cadeia de caracteres (String) com o caractere especificado (char) até o comprimento especificado (len). Se o preenchimento definido em char for maior do que um caractere, somente o primeiro caractere será usado.
Exemplo
PadLeft("M", 4, "x")
retorna "xxxM".
PadRight
PadRight (String, len, char)
: preenche o lado direito da cadeia de caracteres (String) com o caractere especificado (char) até o comprimento especificado (len). Se o preenchimento definido em char for maior do que um caractere, somente o primeiro caractere será usado.
Exemplo
PadRight("M", 4, "x")
retorna "Mxxx".
REGEX_CountMatches
REGEX_CountMatches(String,pattern,icase)
: retorna quantas vezes a cadeia de caracteres (String) corresponde ao padrão especificado (pattern).
O parâmetro
icase
é opcional. Quando especificado, há diferenciação entre maiúsculas e minúsculas. Por padrão, icase = 1, sem diferenciar maiúsculas de minúsculas. Quando definido como 0, há diferenciação.
REGEX_Match
REGEX_Match(String,pattern,icase)
: procura, em uma cadeia de caracteres (String), a ocorrência de um padrão de expressão regular (pattern).
Informa se a cadeia de caracteres coincide com o padrão do primeiro ao último caractere.
Para procurar por algo que não está necessariamente no início da cadeia de caracteres, inicie o padrão com ".*".
Para procurar por algo que não vai necessariamente até o final da cadeia de caracteres, termine o padrão com ".*".
O parâmetro
icase
é opcional. Quando especificado, há diferenciação entre maiúsculas e minúsculas. Por padrão, icase = 1, sem diferenciar maiúsculas de minúsculas. Quando definido como 0, há diferenciação.
Exemplo
REGEX_Match("123-45-6789", "\d{3}-\d{2}-\d{4}")
retorna -1 ou verdadeiro.
REGEX_Replace
REGEX_Replace(String, pattern, replace, icase)
: permite substituir texto usando expressões regulares e retorna a cadeia de caracteres resultante das funções RegEx de encontrar padrão (pattern) e substituir cadeia de caracteres (replace). Todas as ocorrências são substituídas, não apenas a primeira.
O parâmetro "replace" pode ser tanto um valor especificado, como mostrado abaixo, ou um grupo marcado, como "$1". Certifique-se de que os grupos marcados estejam entre aspas duplas.
O parâmetro
icase
é opcional. Quando especificado, há diferenciação entre maiúsculas e minúsculas.
Por padrão, icase = 1, sem diferenciar maiúsculas de minúsculas.
Quando definido como 0, há diferenciação.
Exemplo
REGEX_Replace("Don't reveal your Social Security number, 123-45-6789","\d{3}-\d{2}-\d{4}", "CLASSIFIED")
retorna "Don't reveal your Social Security number, CLASSIFIED".
REGEX_Replace("Change all domain names from alteryx@Alteryx.com","@.*\.", "@extendthereach.")
retorna "Change all domain names from alteryx@extendthereach.com".
REGEX_Replace("25 test","(\d+)\s.*","$1")
retorna 25.
Replace
Replace(String, Target, Replacement):
retorna a cadeia de caracteres (String) após substituir todas as ocorrências da sequência-alvo (Target) com a sequência de substituição (Replacement).
Exemplo
Replace("Good judgment comes from experience", "experience", "awareness")
retorna "Good judgment comes from awareness"
ReplaceChar
ReplaceChar(String, y, z)
: retorna a cadeia de caracteres (String) após substituir todas as ocorrências de qualquer caractere em y pelo caractere em z. Se z for uma cadeia com mais de um caractere, apenas o primeiro será usado. Se z estiver vazio, todos os caracteres da cadeia que corresponderem a quaisquer caracteres em y serão simplesmente removidos.
Exemplo
ReplaceChar("abcdefb", "b", "_")
retorna "a_cdef_".
ReplaceChar("@a#b%c", "@,#,%", "_")
retorna "_a_b_c".
ReplaceFirst
ReplaceFirst(String, Target, Replacement)
: retorna a cadeia de caracteres (String) após substituir a primeira ocorrência da sequência-alvo (Target) pela sequência de substituição (Replacement).
Exemplo
ReplaceFirst("abcdefb", "b", "_")
retorna "a_cdefb".
ReverseString
ReverseString(String)
: inverte todos os caracteres da cadeia de caracteres (String).
Exemplo
ReverseString("abcdefb")
retorna "bfedcba".
Right
Right(String, len)
: retorna os últimos caracteres (número determinado em len) da cadeia. Se len for menor que 0 ou maior que o comprimento da cadeia de caracteres, esta permanecerá inalterada.
Exemplo
Right("92688", 3)
retorna o valor 688.
StartsWith
StartsWith(String, Target, CaseInsensitive=1)
: verifica se uma cadeia de caracteres (String) começa com a sequência-alvo especificada (Target). Retorna verdadeiro se a cadeia de caracteres (String) inicia com a sequência-alvo (Target); senão, retorna falso.
Exemplo
StartsWith('ABC123', 'ABC')
retorna verdadeiro.
StartsWith('ABC123', 'abc')
retorna verdadeiro.
StartsWith('ABC123', 'abc', 0)
retorna falso.
STRCSPN
STRCSPN(String, y)
: retorna o comprimento da porção inicial da cadeia de caracteres (String) consistindo em caracteres que
não
estão em y.
Exemplo
STRCSPN("Bob's Amaco", "~!@#$%^&*'()")
retorna 3. Esse é um teste útil para se certificar de que não há nenhuma pontuação na cadeia de caracteres.
StripQuotes
StripQuotes(String)
: remove um par de aspas ou apóstrofos das extremidades da cadeia de caracteres (String).
Exemplo
StripQuotes("Hello there")
retorna Hello there.
StripQuotes("'Hello there,' she said.")
retorna 'Hello there,' she said.
StripQuotes('"Hello there," she said.')
retorna "Hello there," she said.
STRSPN
STRSPN(String, y)
: retorna o comprimento da porção inicial da cadeia de caracteres (String) consistindo em caracteres que estão em (y).
Exemplo
STRSPN("3034408896x105", "0123456789")
retorna 10. Este é um teste útil para se certificar de que uma cadeia é formada por um determinado um conjunto de caracteres.
Substring
Substring(String, start, length)
: retorna a subcadeia da cadeia de caracteres (String), começando em "start" e parando após o comprimento informado em "lenght", se informado.
Exemplo
Substring("949-222-4356", 4, 8)
retorna 222-4356.
Substring("949-222-4356", 4, 6)
retorna 222-43.
Substring("949-222-4356", 4)
retorna 222-4356.
TitleCase
TitleCase(String)
: converte a primeira letra de cada palavra da cadeia de caracteres (String) para maiúscula.
Exemplo
TitleCase("john smith")
retorna "John Smith".
Trim
Trim(String, y)
: remove os caracteres em y do início e do fim da cadeia de caracteres (String). O parâmetro y é opcional: por padrão, essa função remove espaços em branco. Observe, nos exemplos da função TRIM, que os caracteres especificados são removidos. Não importa a ordem em que os caracteres estão.
Exemplo
Trim("!see instructions!!!", "!")
retorna "see instructions".
Trim(" Test123 ")
returns "Test123", sem os espaços no início e no fim.
TrimLeft
TrimLeft(String, y)
: remove os caracteres em y do início da cadeia de caracteres (String). O parâmetro y é opcional: por padrão, essa função remove espaços em branco.
Exemplo
TrimLeft("** special invitation ", " *")
retorna "special invitation ".
TrimRight
TrimRight(String, y)
: remove os caracteres em y do final da cadeia de caracteres (String). O parâmetro y é opcional: por padrão, essa função remove espaços em branco.
Mesmo que você queira cortar um grupo de caracteres em sequência, as funções Trim não respeitam a ordem dos caracteres – elas tratam a cadeia em "y" como uma simples lista. Portanto, elas cortam TODOS os caracteres especificados na lista. Se você quiser substituir uma sequência como um todo, use uma função Replace ou uma função Regex em sua expressão.
Exemplo
TrimRight("John Smith ")
retorna "John Smith".
TrimRight("John Smith**","*")
retorna "John Smith".
Uppercase
Uppercase(String)
: converte a cadeia de caracteres (String) para letras maiúsculas.
Exemplo
Uppercase("John Smith")
retorna "JOHN SMITH".
Uuid
UuidCreate()
: cria um identificador exclusivo.
Exemplo
UuidCreate()
retorna um valor único, como "ba131836-1ba3-4d42-8f7e-b81a99c2e838".
Sobre o comprimento das cadeias de caracteres
Ao fazer referência ao comprimento ( length ) de uma cadeia de caracteres, o primeiro caractere é contado como 1 (o comprimento da cadeia "registro" é 8).
No entanto, ao fazer referência à posição dos caracteres dentro de uma cadeia, as posições são contadas entre os caracteres. Basta pensar na posição do primeiro caractere como sendo 0. Assim, a posição da letra "g" na cadeia "registro" é 2.