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

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 2 min. de leitura
  • As definições de transformação de campo oferecem suporte ao uso de expressões regulares (conhecidas na plataforma como 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.

    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 da 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 a ser transformado.
    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 reter sua função no nome do computador. O administrador deve escapá -lo 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 Transformação para aplicar essa transformação aos registros existentes no banco de dados.