Função RIGHTFIND

Retorna o valor de índice da string de entrada em que se encontra a última instância de uma string correspondente. A pesquisa é realizada da direita para a esquerda.

É possível especificar a entrada como uma referência de coluna ou um literal de string, mas o uso desse literal é raro.

  • Uma referência de coluna pode se referir a uma coluna do tipo string, objeto ou matriz, o que torna a função RIGHTFIND útil para filtrar os dados antes de eles serem completamente desaninhados em dados tabulares.
  • O local de início está especificado no fim da string.
  • O valor retornado é desde o início da string, independentemente do valor de índice da string.
  • Se nenhuma correspondência for encontrada, a função retornará um valor nulo.
  • Caso seja necessário determinar se um valor está ou não em uma matriz, você poderá usar a função MATCHES, que retorna uma resposta verdadeira/falsa. Consulte a Função MATCHES.

Também é possível pesquisar uma string a partir da esquerda. Para mais informações, consulte a Função FIND.

Uso básico

Exemplo de referência de coluna:

derive type:single value: RIGHTFIND(MyName,'find this',true,0)

Saída: pesquisa o valor da coluna MyName em busca da última instância da string find this a partir do fim do valor, ignorando maiúsculas. Se uma correspondência for encontrada, o valor do índice do início da string será escrito na nova coluna.

Exemplo de literal de string:

derive type:single value: RIGHTFIND('Hello, World','lo',false,2)

Saída: pesquisa a string Hello, World em busca da string lo. A pesquisa diferencia letras maiúsculas de minúsculas e começam pelo antepenúltimo caractere da string. Quando a correspondência é encontrada no quarto caractere da esquerda para a direita, o valor 3 é escrito na nova coluna.

Exemplo de If:

derive type:single value: IF(RIGHTFIND(SearchPool,'FindIt') >= 0, 'found it', '') as: 'Finds'

Saída: pesquisa o valor da coluna SearchPool em busca da string FindIt a partir do fim do valor (padrão). O comportamento padrão é não ignorar a capitalização. Se a string for encontrada, a nova coluna Finds conterá o valor found it. Caso contrário, a coluna estará vazia.

Sintaxe

derive type:single value:RIGHTFIND(column_string,string_pattern,[ignore_case], [start_index])

ArgumentoObrigatório?Tipo de dadosDescrição
column_stringSstringNome da coluna ou literal de string a ser aplicado à função
string_patternSstringLiteral ou padrão de string a ser encontrado
ignore_caseNbooleanoSe true, será executada uma correspondência indiferente a maiúsculas. O padrão é false.
start_indexNnúmero inteiro (positivo)

Se especificado, esse valor identificará o índice inicial dos dados de origem para procurar uma correspondência

OBSERVAÇÃO: esse valor é especificado a partir do fim da string.

Se não for especificado, a string inteira é pesquisada.

Para saber mais informações sobre os padrões de sintaxe, consulte Notas de sintaxe da documentação da linguagem.

column_string

Nome do item a ser pesquisado. Veja a seguir os valores válidos:

  • Os literais de string precisam estar entre aspas simples ('Hello, World').
  • Referência de coluna a qualquer tipo que possa ser inferido como uma string, englobando todos os valores.

Os valores ausentes geram o parâmetro de índice inicial.

  • Vários valores e caracteres curinga não são aceitos.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimLiteral de string ou referência de coluna (String, Array ou Object)myColumn

string_pattern

Literal ou padrão de string a ser encontrado. Esse valor pode ser um literal de string, um padrão do Cloud Dataprep ou uma expressão regular.

  • Os valores ausentes de string ou de coluna geram o parâmetro de índice inicial.
    • Os literais de string precisam estar entre aspas simples ('Hello, World').
  • Vários valores e caracteres curinga não são aceitos.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimLiteral ou padrão de string'Hello'

ignore_case

Se true, a função RIGHTFIND ignorará maiúsculas ao tentar corresponder o valor do literal ou do padrão de string.

O valor padrão é false, o que significa que é realizada por padrão a correspondência que diferencia letras maiúsculas de minúsculas.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
NãoBooleanotrue

start_index

O índice do caractere na coluna ou valor literal da string em que a pesquisa é iniciada a partir do final da string. Por exemplo, um valor de 2 instrui a função RIGHTFIND a começar a pesquisar pelo terceiro caractere no valor da coluna ou da string.

OBSERVAÇÃO: os valores de índice começam em 0. Se não for especificado, o valor padrão será 0, que pesquisa toda a string a partir do fim.

  • O valor precisa ser um número inteiro positivo.

  • Se esse valor for maior que o comprimento da string, nenhuma correspondência será possível.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
NãoNúmero inteiro (positivo)2

Exemplos

Exemplo - localiza nomes de arquivos em um URL

Neste exemplo, os nomes dos arquivos são extraídos de uma coluna de valores de URL. Algumas linhas não têm nomes de arquivos e há variação na estrutura dos URLs.

Fonte:

URL
www.example.com
http://www.example.com
http://www.example.com/test_app
http://www.example.com/index.html
http://www.example.com/resources/mypic.jpg
http://www.example.com/pages/mypage.html
http://www.example.com/resources/styles.css
www.example.com/resources/styles.css

Transformação:

Para preservar a coluna original, é possível usar o seguinte para criar uma versão de trabalho da origem:

derive type:single value:URL as:'filename'

É possível usar o seguinte para padronizar o formato da coluna de trabalho:

replace: col:filename on:'http:' with:'' ignoreCase:true

Dica: pode ser necessário modificar os dados acima para usar um padrão do Cloud Dataprep a fim de remover https://.

Nas próximas duas etapas, é feito o cálculo de onde estão localizados no filename os valores de barra e de ponto, se existirem. Isso é calculado com:

derive type:single value: RIGHTFIND(filename,"\/",true,0) as: 'rightFindSlash'

derive type:single value: RIGHTFIND(filename,".",true,0) as: 'rightFindDot'

Se um dos valores acima for 0, não há nome de arquivo presente:

set col:filename value:IF((rightFindSlash == 0) || (rightFindDot == 0), '', RIGHT(filename,(LEN(filename)-rightFindSlash)))

Resultados:

Após excluir as colunas intermediárias, você deve encerrar com algo semelhante a:

URLfilename
www.example.com
http://www.example.com
http://www.example.com/test_app
http://www.example.com/index.html index.html
http://www.example.com/resources/mypic.jpg mypic.jpg
http://www.example.com/pages/mypage.html mypage.html
http://www.example.com/resources/styles.css styles.css
www.example.com/resources/styles.cssstyles.css

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.