Funções de strings string-functions
As funções de string permitem manipular e trabalhar com valores de texto nas expressões de jornada. Essas funções são essenciais para o processamento, validação, transformação e análise de texto nas jornadas do cliente.
Use funções de string quando precisar:
- Concatenar e combinar vários valores de texto (concat)
- Pesquisar padrões ou subcadeias de texto específicos (contain, containIgnoreCase, indexOf, lastIndexOf, matchRegExp)
- Comparar cadeias de caracteres com correspondência que diferencia maiúsculas de minúsculas ou que não diferencia maiúsculas de minúsculas (equalIgnoreCase, notEqualIgnoreCase)
- A verificação da cadeia de caracteres inicia e termina (startWith, startWithIgnoreCase, endWith, endWithIgnoreCase)
- Extrair partes do texto usando operações de subcadeia de caracteres (substr)
- Transformar texto em maiúsculas ou minúsculas (upper, lower, trim)
- Verifique se as cadeias de caracteres estão vazias ou contêm valores específicos (isEmpty, isNotEmpty)
- Substituir padrões de texto por novos valores (replace, replaceAll)
- Dividir cadeias de caracteres em matrizes para processamento adicional (split)
- Obter comprimento da cadeia de caracteres (length) ou gerar identificadores exclusivos (uuid)
As funções de sequência fornecem recursos abrangentes de manipulação de texto, permitindo um processamento sofisticado de dados e uma lógica condicional baseada no conteúdo do texto nas expressões de jornada.
concat concat
Concatena dois parâmetros de string ou uma lista de strings.
concat(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| Lista | listString |
| sequência de caracteres | sequência de caracteres |
concat(<string>,<string>)
concat(<listString>)
Retorna uma string.
concat("Hello","World")
Retorna “HelloWorld”.
concat(["Hello"," ","World"])
Retorna “Olá, Mundo”.
contain contain
Verifica se a segunda cadeia de caracteres do argumento está contida na primeira cadeia de caracteres do argumento.
contain(<parameters>)- sequência de caracteres
contain(<string>,<string>)
Retorna um valor booleano.
contain("rowing is great", "great")
Retorna verdadeiro.
containIgnoreCase containIgnoreCase
Verifica se a segunda cadeia de caracteres do argumento está contida na primeira cadeia de caracteres do argumento, sem levar em conta maiúsculas e minúsculas.
containIgnoreCase(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| sequência de caracteres | sequência de caracteres |
| sequência de caracteres pesquisada | sequência de caracteres |
containIgnoreCase(<string>,<string>)
Retorna um valor booleano.
containIgnoreCase("rowing is great", "GREAT")
Retorna verdadeiro.
endWith endWith
Retornará true se o segundo parâmetro for um sufixo do primeiro.
endWith(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| sequência de caracteres | sequência de caracteres |
| sufixo | sequência de caracteres |
endWith(<string>,<string>)
Retorna um valor booleano.
endWith("Hello World", "World")
Retorna verdadeiro.
endWith("Hello World", "Hello")
Retorna falso.
endWithIgnoreCase endWithIgnoreCase
Verifica se a primeira sequência de argumento termina com uma sequência específica (segunda sequência de argumento), sem levar em conta maiúsculas e minúsculas.
endWithIgnoreCase(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| sequência de caracteres | sequência de caracteres |
| sufixo | sequência de caracteres |
endWithIgnoreCase(<string>,<string>)
Retorna um valor booleano.
endWithIgnoreCase("rowing is great", "AT")
Retorna verdadeiro.
equalIgnoreCase equalIgnoreCase
Compara a primeira sequência de argumento com a segunda sequência de argumento, ignorando considerações de maiúsculas e minúsculas.
equalIgnoreCase(<parameters>)- sequência de caracteres
equalIgnoreCase(<string>,<string>)
Retorna um valor booleano.
equalIgnoreCase("rowing is great", "rowing is GREAT")
Retorna verdadeiro.
indexOf indexOf
Retorna a posição (no primeiro argumento) da primeira ocorrência do segundo parâmetro. Retorna -1 se não houver correspondência.
indexOf(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| sequência de caracteres | String |
| valor especificado | String |
indexOf(<string>,<string>)
Retorna um inteiro.
indexOf("Hello", "l")
Retorna 2.
Explicação:
Em “Olá”, a primeira ocorrência de “l” está na posição 2.
isEmpty isEmpty
Retornará true se a cadeia de caracteres no parâmetro não tiver caractere.
isEmpty(<parameters>)- sequência de caracteres
isEmpty(<string>)
Retorna um valor booleano.
isEmpty("")
Retorna verdadeiro.
isEmpty("Hello World")
Retorna falso.
isEmpty(<null>)
Retorna falso.
isNotEmpty isNotEmpty
Retorna verdadeiro se a string no parâmetro não estiver vazia.
isNotEmpty(<parameters>)- sequência de caracteres
isNotEmpty(<string>)
Retorna um valor booleano.
isNotEmpty("")
Retorna falso.
isNotEmpty("hello")
Retorna verdadeiro.
lastIndexOf lastIndexOf
Retorna a posição (no primeiro argumento) da última ocorrência do segundo parâmetro. Retorna -1 se não houver correspondência.
lastIndexOf(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| sequência de caracteres | String |
| valor especificado | String |
lastIndexOf(<string>,<string>)
Retorna um inteiro.
lastIndexOf("Hello", "l")
Retorna 3.
Explicação:
Em “Olá”, a última ocorrência de “l” está na posição 3.
comprimento length
Retorna o número de caracteres da expressão de cadeia de caracteres no parâmetro.
length(<parameters>)- sequência de caracteres
length(<string>)
Retorna um inteiro.
length("Hello World")
Retorna 11.
lower lower
Retorna uma versão em minúsculas do parâmetro.
lower(<parameter>)- sequência de caracteres
lower(<string>)
Retorna uma string.
lower("A")
Retorna “a”.
matchRegExp matchRegExp
Retornará true se a cadeia de caracteres no primeiro parâmetro corresponder à expressão regular no segundo parâmetro. Para obter mais informações, consulte esta página.
matchRegExp(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| sequência de caracteres | sequência de caracteres |
| regexp | sequência de caracteres |
matchRegExp(<string>,<string>)
Retorna um valor booleano.
matchRegExp("12345", "\\d+")
Retorna verdadeiro.
notEqualIgnoreCase notEqualIgnoreCase
Verifique se a primeira string do argumento com a segunda string do argumento é diferente, ignorando as considerações sobre maiúsculas e minúsculas.
notEqualIgnoreCase(<parameters>)- sequência de caracteres
notEqualIgnoreCase(<string>,<string>)
Retorna um valor booleano.
notEqualIgnoreCase(@event{iOSPushPermissionAllowed.device.model}, "iPad")replace replace
Substitui a primeira ocorrência correspondente à string de destino pela string de substituição na string de base.
A substituição continua do início da string até o fim. Por exemplo, substituir “aa” por “b” na string “aaa” resultará em “ba” em vez de “ab”.
replace(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parâmetro | Tipo |
| base | sequência de caracteres |
| target | string (RegExp) |
| substituição | sequência de caracteres |
replace(<base>,<target>,<replacement>)
Retorna uma string.
replace("Hello World", "l", "x")
Retorna “Hexlo World”.
Exemplo com RegExp:
Como o parâmetro de destino é um RegExp, dependendo da cadeia de caracteres que você deseja substituir, talvez seja necessário usar escape em alguns caracteres. Exemplo:
- cadeia de caracteres a ser avaliada:
|OFFER_A|OFFER_B - fornecido por um atributo de perfil
#{ExperiencePlatform.myFieldGroup.profile.myOffers} - Cadeia de caracteres a ser substituída:
|OFFER_A - Cadeia de caracteres substituída por:
'' - É necessário adicionar
\\antes do caractere|.
A expressão é:
replace(#{ExperiencePlatform.myFieldGroup.profile.myOffers}, '\\|OFFER_A', '')
A cadeia de caracteres retornada é: |OFFER_B
Também é possível criar a cadeia de caracteres a ser substituída a partir de um determinado atributo:
replace(#{ExperiencePlatform.myFieldGroup.profile.myOffers}, '\\|' + #{ExperiencePlatform.myFieldGroup.profile.myOfferCode}, '')
replaceAll replaceAll
Substitui todas as ocorrências correspondentes à cadeia de caracteres de destino pela cadeia de caracteres de substituição na cadeia de caracteres base.
A substituição continua do início da string até o fim. Por exemplo, substituir “aa” por “b” na string “aaa” resultará em “ba” em vez de “ab”.
replaceAll(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parâmetro | Tipo |
| base | sequência de caracteres |
| target | string (RegExp) |
| substituição | sequência de caracteres |
replaceAll(<baseString>,<sourceString>,<replacementString>)
Retorna uma string.
replaceAll("Hello World", "l", "x")
Retorna “Hexxo Worxd”.
Como o parâmetro de destino é um RegExp, dependendo da cadeia de caracteres que você deseja substituir, talvez seja necessário usar escape em alguns caracteres. Consulte o exemplo na função replace.
split split
Divide a primeira sequência de argumento com uma sequência de separador (segunda sequência de argumento, que pode ser uma expressão regular) para produzir uma lista de sequências de caracteres (tokens).
split(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| string de entrada | sequência de caracteres |
| sequência de caracteres separadora | sequência de caracteres |
split(<input string>, <separator string>)
Retorna uma listString.
split("A_B_C", "_")
Retorna ["A","B","C"]
Exemplo com um campo de evento “event.appVersion” com valor: “20.45.2.3434”
split(@event{event.appVersion}, "\\.")
Retorna ["20", "45", "2", "3434"]
startWith startWith
Retornará true se o segundo parâmetro for um prefixo do primeiro.
startWith(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| sequência de caracteres | sequência de caracteres |
| prefixo | sequência de caracteres |
startWith(<string>,<string>)
Retornar um booleano.
startWith("Hello World", "Hello")
Retorna verdadeiro.
startWith("Hello World", "World")
Retorna falso.
startWithIgnoreCase startWithIgnoreCase
Retornará true se o segundo parâmetro for um prefixo do primeiro sem considerar letras maiúsculas e minúsculas.
startWithIgnoreCase(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| sequência de caracteres | sequência de caracteres |
| prefixo | sequência de caracteres |
startWithIgnoreCase(<string>,<string>)
Retornar um booleano.
startWithIgnoreCase("rowing is great", "RO")
Retorna verdadeiro.
substr substr
Retorna a subcadeia de caracteres da expressão de cadeia de caracteres entre o índice inicial e o índice final. Se o índice final não estiver definido, ele será entre o índice inicial e o final.
substr(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parâmetro | tipo |
| sequência de caracteres | sequência de caracteres |
| beginIndex | inteiro |
| endIndex | inteiro |
substr(<string>,<beginIndex>)
substr(<string>,<beginIndex>,<endIndex>)
Retorna uma string.
substr("Hello World",6)
Retorna “Mundo”.
substr("Hello World", 0, 5)
Retorna “Olá”.
trim trim
Remove espaços iniciais e finais.
trim(<parameters>)| table 0-row-2 1-row-2 | |
|---|---|
| Parâmetro | Tipo |
| sequência de caracteres | sequência de caracteres |
trim(<string>)
Retorna uma string.
trim(" Hello ")
Retorna “Olá”.
upper upper
Retorna uma versão em maiúsculas do parâmetro.
upper(<parameters>)upper(<string>)
Retorna uma string.
upper("b")
Retorna “B”.
uuid uuid
Gera um UUID aleatório (Identificador exclusivo universal).
uuid()uuid()
Retorna uma string.
uuid()
Retorna “79e70b7f-8a85-400b-97a1-9f9826121553”.
Esta seção contém conhecimento estruturado destinado a oferecer suporte à interpretação, recuperação e resposta a perguntas relacionadas a este tópico.
Para uma compreensão completa, essas informações devem ser combinadas com a documentação desta página. Nenhuma das origens deve ser independente; a página descreve o recurso, enquanto esta seção fornece um contexto adicional que ajuda a desfazer a ambiguidade da terminologia, intenção, aplicabilidade e restrições.
- TL;DR: esta página documenta todas as funções de cadeia de caracteres disponíveis nas expressões de jornada do AJO, abrangendo pesquisa de texto, comparação, transformação, extração, validação, substituição, divisão e geração de identificador exclusivo.
Intenções:
- Concatenar duas ou mais cadeias de caracteres usando
concat - Pesquisar uma subcadeia de caracteres em uma cadeia de caracteres (diferencia maiúsculas de minúsculas ou não diferencia maiúsculas de minúsculas) usando
containoucontainIgnoreCase - Comparar duas cadeias de caracteres ao ignorar maiúsculas e minúsculas usando
equalIgnoreCaseounotEqualIgnoreCase - Verifique se uma cadeia de caracteres começa ou termina com um prefixo ou sufixo específico usando
startWith,endWithe suas variantes que não diferenciam maiúsculas de minúsculas - Extrair uma subcadeia de caracteres por posições de índice usando
substr - Substituir a primeira ou todas as ocorrências de um padrão em uma cadeia de caracteres usando
replaceoureplaceAll - Dividir uma cadeia de caracteres em uma lista de tokens por um separador usando
split - Gerar uma UUID aleatória para as necessidades de identificador exclusivo usando
uuid - Verifique se a cadeia de caracteres está vazia ou não usando
isEmptyouisNotEmpty
Glossário:
- RegExp: um padrão de expressão regular usado como parâmetro de destino em
replace,replaceAllematchRegExp— caracteres especiais devem ter escape com\\ - UUID: Identificador Exclusivo Universal — um identificador de cadeia de caracteres gerado aleatoriamente e retornado por
uuid() - substr: extrai uma parte de uma cadeia de caracteres especificando um índice inicial e um índice final opcional (baseado em zero)
Medidas de Proteção:
- O parâmetro
targetemreplaceereplaceAllé tratado como um RegExp; caracteres especiais (por exemplo,|,.) devem ser evitados com\\ replacesubstitui somente a primeira ocorrência correspondente; usereplaceAllpara substituir cada ocorrênciaisEmptyretorna falso para valores nulos (não verdadeiro); nulo não é considerado uma cadeia de caracteres vaziaindexOfelastIndexOfretornam -1 quando nenhuma correspondência for encontrada- As posições do índice de string são baseadas em zero (o primeiro caractere está na posição 0)
Terminologia:
- Nome canônico: Funções de string — Acrônimo: none — variantes: funções de texto, funções de manipulação de string
- Sinônimos: “contain” = “substring check”; “split” = “tokenize string”; “trim” = “strip whitespace”
- Não confunda: “replace” (apenas a primeira ocorrência) ≠ “replaceAll” (todas as ocorrências)
- Não confundir: “indexOf” (primeira posição de ocorrência) ≠ “lastIndexOf” (última posição de ocorrência)
- Não confunda: “isEmpty” (true somente para cadeia de caracteres de comprimento zero) ≠ verificação nula (isEmpty retorna false para nulo)
- Não confunda: “equalIgnoreCase” (retorna true quando ignora maiúsculas e minúsculas de igual ignorância) ≠ “notEqualIgnoreCase” (retorna true quando ignora maiúsculas e minúsculas de diferente ignorância)
Perguntas frequentes:
- P: Como verificar se uma cadeia de caracteres contém uma subsequência, independentemente de caracteres maiúsculos ou minúsculos? — Use
containIgnoreCase("myString", "searchTerm"), que retornará true se o termo de pesquisa for encontrado em qualquer caso. - P: Qual é a diferença entre
replaceereplaceAll? —replacesubstitui somente a primeira ocorrência correspondente;replaceAllsubstitui cada ocorrência na cadeia de caracteres. - P: Por que preciso usar o caractere
|como escape emreplace? — O parâmetro de destino é tratado como uma expressão regular;|é um caractere RegExp especial e deve ter escape como\\|para ser tratado como um pipe literal. - P:
isEmptyretorna verdadeiro para nulo? — Não,isEmptyretorna falso para nulo; ele só retorna verdadeiro para uma cadeia de caracteres de comprimento zero"". - P: Como extrair o número da versão principal de uma cadeia de caracteres de versão como “20.45.2.3434”? — Use
getListItem(split(@event{event.appVersion}, "\\."), 0)para dividir por ponto e recuperar o primeiro elemento. - P: Como faço para gerar um identificador exclusivo em uma expressão de jornada? — Use
uuid(), que retorna uma cadeia de caracteres UUID gerada aleatoriamente sem parâmetros necessários.