Expressões regulares e padrões em regras de normalização de campo

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 2 min. de leitura
  • As definições de transformação de campo oferecem suporte ao uso de expressões regulares (chamadas na plataforma de regex) e à correspondência de padrões para determinar a posição dos caracteres em uma cadeia de caracteres.

    Depois de identificar os caracteres de destino, a transformação do campo pode substituir ou excluir os caracteres identificados ou inserir outros caracteres nessa posição.

    Regex

    Expressões regulares podem ser usadas em parâmetros de transformação e em declarações de condição para determinar quais caracteres em um valor de campo são transformados.

    As expressões regulares usadas como parâmetros para localizar caracteres em valores de campos transformados devem começar com /regex/. Tudo depois disso é uma expressão regular usada para calcular a posição do caractere.

    Exemplo

    Os nomes de computador na rede Windows de uma organização são expressos como domain\machine name, como development\devlab01. O administrador de rede deseja simplificar esses nomes removendo o nome do domínio e a barra invertida. Ele cria um registro de transformação para a tabela Computador [cmdb_ci_computer] e seleciona o campo Nome para transformar.
    Figura 1. Exemplo de regex de transformação
    A rede contém vários domínios e cada domínio contém vários computadores. O único caractere comum a cada nome é a barra invertida. Para excluir o nome do domínio, o administrador decide usar uma expressão regular para substituir todo o valor bruto no campo pelos caracteres que aparecem após a barra invertida (o nome real da máquina). Ele cria uma nova Transformação usando Substituir como o Tipo de Transformação e insere os seguintes valores:
    • Localizar:/regex/.*\\(.*)
    • Substituir por:$1
    Figura 2. Exemplo de regex de transformação

    A expressão regular .*\\(.*) representa o valor bruto inteiro no campo Nome - neste exemplo, development\devlab01. A primeira parte da expressão, .*, representa tudo antes da barra invertida (o nome do domínio de desenvolvimento ). A barra invertida por si só é o caractere de escape em expressões regulares e requer sintaxe especial para manter sua função no nome do computador. O administrador deve fazer o escape usando outra barra invertida (\\ significa \). A parte da expressão após a barra invertida, (.*), representa o nome do computador (devlab01) e é agrupada entre parênteses para referência. O valor no campo Substituir por, $1, faz referência a este grupo e substitui todo o valor bruto do campo pelo conteúdo do grupo, devlab01.

    O administrador clica em Testar transformações no registro de transformação e insere development\devlab01 no campo Dados brutos. Em seguida, ele clica em OK para aplicar a transformação ao valor de teste. A transformação substitui development\devlab01 por devlab01.
    Figura 3. Regex de transformação 3

    Quando as transformações deste campo são testadas com sucesso, o administrador muda o Modo no registro de transformação para Ativo e executa o trabalho de dados da aplicação de transformação para aplicar esta transformação aos registros existentes no banco de dados.