Expressions régulières et modèles dans les règles de normalisation de champ

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 2 minutes de lecture
  • Les définitions de transformation de champ prennent en charge l’utilisation d’expressions régulières (appelées regex dans la plateforme) et la correspondance de modèle pour déterminer la position des caractères dans une chaîne.

    Après avoir identifié les caractères cibles, la transformation de champ peut remplacer ou supprimer les caractères identifiés ou insérer d’autres caractères à cette position.

    Regex

    Les expressions régulières peuvent être utilisées dans les paramètres de transformation et dans les instructions de condition pour déterminer quels caractères d’une valeur de champ sont transformés.

    Les expressions régulières utilisées comme paramètres pour localiser les caractères dans les valeurs de champ transformées doivent commencer par /regex/. Tout ce qui suit est une expression régulière qui est utilisée pour calculer la position des caractères.

    Exemple

    Les noms d’ordinateur dans le réseau d’une Windows organisation sont exprimés sous la forme domaine\nom de machine, par exemple développement\devlab01. L’administrateur réseau souhaite simplifier ces noms en supprimant le nom de domaine et la barre oblique inverse. Il crée un enregistrement de transformation pour la table Ordinateur [cmdb_ci_computer] et sélectionne le champ Nom à transformer.
    Figure 1. Exemple de regex de transformation
    Le réseau contient plusieurs domaines, et chaque domaine contient de nombreux ordinateurs. Le seul caractère commun à chaque nom est la barre oblique inverse. Pour supprimer le nom de domaine, l’administrateur décide d’utiliser une expression régulière pour remplacer toute la valeur brute dans le champ par les caractères qui apparaissent après la barre oblique inverse (le nom réel de la machine). Il crée une nouvelle transformation en utilisant Remplacer comme type de transformation et saisit les valeurs suivantes :
    • Rechercher :/regex/.*\\(.*)
    • Remplacer par :$1
    Figure 2. Exemple de regex de transformation

    L’expression régulière .*\\(.*) représente la totalité de la valeur brute dans le champ Nom , dans cet exemple : development\devlab01. La première partie de l’expression, .*, représente tout ce qui précède la barre oblique inverse (le nom du domaine de développement ). La barre oblique inverse en elle-même est le caractère d’échappement dans les expressions régulières et nécessite une syntaxe spéciale pour conserver sa fonction dans le nom de l’ordinateur. L’administrateur doit y échapper en utilisant une autre barre oblique inverse (\\ signifie \). La partie de l’expression après la barre oblique inverse, (.*), représente le nom de l’ordinateur (devlab01) et est regroupée entre parenthèses pour référence. La valeur du champ Remplacer par , $1, fait référence à ce groupe et remplace la valeur brute entière du champ par le contenu du groupe, devlab01.

    L’administrateur clique sur Tester les transformations dans l’enregistrement de transformation et saisit development\devlab01 dans le champ Données brutes . Il clique ensuite sur OK pour appliquer la transformation à la valeur de test. La transformation remplace development\devlab01 par devlab01.
    Figure 3. Regex de transformation 3

    Lorsque les transformations de ce champ sont testées avec succès, l’administrateur passe le mode dans l’enregistrement de transformation en Actif et exécute la tâche de données de l’application Transformation pour appliquer cette transformation aux enregistrements existants dans la base de données.