Olá pessoal, como estão!? Espero que estejam com saúde!

Querem entender como substituir um valor em uma string por outro!?

Neste rápido tutorial mostro como utilizar o step de Replace in String, que permite realizar esta operação!

Primeiro passo é configurar nosso bom e velho generate rows com strings de exemplo.

O replace in string se alimenta de dados que passam pela stream e dependendo da configuração, a coluna terá seus valores trocados.

Na imagem abaixo, um exemplo de configuração para o replace. 

Explicando:

  • Na coluna LinhaUm, irá substituir a palavra replace por troca concluída;
  • Na coluna LinhaDois, substituirá a palavra field por campo;
  • Na coluna Linha Três a palavra teste por replace. 

Ficando desta forma o resultado:

Todos os valores foram alterados com sucesso nas saídas da stream, como podemos ver na nova coluna.

Repare um fato interessante neste novo exemplo, com uma pequena alteração de configuração do step replace in string.  

Executando todo o processo, temos o seguinte resultado:

Consegue entender o motivo da coluna dois ter sido substituída normalmente enquanto a coluna três não?

Como habilitamos a opção whole word no step e na coluna Linha Tres o valor gerado está escrito junto ‘TesteExecutado’, o step não consegue substituir por considerar toda como uma única palavra.

Uma vez que o replace in string não encontra a correspondência, não substitui! Cuidado com o Whole word!!!

Dentro do step é possível substituir um campo pelo outro. Tenha ciência que não será o campo novo, gerado na saída da transformação, mas sim, pelo campo de input. Veja:

Reforçando que não é permitido utilizar os campos de saída de replace.

Substituindo o campo LinhaUm pelo campo Linha Tres, temos o seguinte resultado para a coluna LinhaUm Nova

REGULAR EXPRESSION (REGEX)

As expressões regulares são os símbolos e caracteres que utilizamos para pesquisa como o “ %” no SQL na cláusula Like  ou, quando importamos um arquivo que sofre algum problema na conversão por conta dos caracteres unicode (Nvarchar).

Quando temos ciência desse tipo de campo na stream de dados, podemos habilitar a opção para tratar desses caracteres e removê-los durante a limpeza.

Antes do teste, faça uma pequena modificação no generate rows, alterando a coluna LinhaDois.

Depois, altere o step replace in string da seguinte forma:

Executando a transformação, veja como o step age com a opção use RegEx habilitada. 

Perceba que os parênteses ainda continuam na saída da stream de dados, ainda que na configuração, não os tenha colocado. Com o RegEx habilitado, eles foram ignorados e mantidos, e o valor field foi devidamente substituído.

Desabilitando o RegEx e executando novamente, veja o que aconteceu.

Veja este novo teste com o RegEx desabilitado e a palavra campo entre os parênteses!

Tanto o valor de input quanto o de output saíram entre parênteses.

E no último teste com o RegEx HABILITADO veja como o replace in string se comporta!

Ele acabou “somando” os parênteses e substituiu a palavra desejada! Um resultado um tanto quanto peculiar!

CONCLUSÃO

O replace string é um dos steps mais importantes nas transformações principalmente quando estamos limpando dimensões!

Por ser a melhor opção para tratar campos de texto, sua variedade de uso pode ser infinita e, além disso, ainda permite o uso de variáveis para aumentar a gama de tratamento!

Quis trazer este exemplo pois é um que vale muito a pena dominar e conhecer as possibilidades que ele abre no que tange a transformação!

Espero que tenham gostado, saúde!

link para os arquivos aqui.