Exemples d'expression régulière
- Formatage des expressions régulières
- Exemples
- Exemple 1 montrant les noms de zone
- Exemple 2
- Exemple 3
- Exemple 4 montrant un modèle de dénomination plus complexe
- Exemple 5 montrant les noms de zone sans motif
- Exemple 6 montrant les noms d'ordinateur avec un motif
- Exemple 7
- Exemple 8
- Exemple 9
- Exemple 10
- Exemple 11
- Exemple 12
- Exemple 13
- Exemple 14
- Exemple 15
Si vous avez sélectionné l'approche expression régulière comme stratégie de nommage de source, vous pouvez utiliser les exemples d'expression régulière comme guides pour vos propres expressions utilisées dans les méthodes de résolution automatique de Data Infrastructure Insights.
Formatage des expressions régulières
Lorsque vous créez des expressions régulières pour la résolution automatique de Data Infrastructure Insights, vous pouvez configurer le format de sortie en entrant des valeurs dans un champ nommé FORMAT.
Le paramètre par défaut est \1, ce qui signifie qu'un nom de zone correspondant à l'expression régulière est remplacé par le contenu de la première variable créée par l'expression régulière. Dans une expression régulière, les valeurs des variables sont créées par des instructions entre parenthèses. Si plusieurs instructions entre parenthèses se produisent, les variables sont référencées numériquement, de gauche à droite. Les variables peuvent être utilisées dans le format de sortie dans n'importe quel ordre. Le texte constant peut également être inséré dans la sortie, en l'ajoutant au champ FORMAT.
Par exemple, vous pouvez avoir les noms de zone suivants pour cette convention d'appellation de zone :
[Zone number]_[data center]_[hostname]_[device type]_[interface number] * S123_Miami_hostname1_filer_FC1 * S14_Tampa_hostname2_switch_FC4 * S3991_Boston_hostname3_windows2K_FC0 * S44_Raleigh_hostname4_solaris_FC1
La sortie peut être au format suivant :
[hostname]-[data center]-[device type] Pour ce faire, vous devez capturer les champs de nom d'hôte, de centre de données et de type de périphérique dans les variables et les utiliser dans la sortie. L'expression régulière suivante ferait ceci :
.*?_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_.* Comme il y a trois ensembles de parenthèses, les variables \1, \2 et \3 seraient renseignées.
Vous pouvez ensuite utiliser le format suivant pour recevoir les sorties au format de votre choix :
\2-\1-\3 Votre résultat sera le suivant :
hostname1-Miami-filer hostname2-Tampa-switch hostname3-Boston-windows2K hostname4-Raleigh-solaris
Les tirets entre les variables fournissent un exemple de texte constant inséré dans la sortie formatée.
Exemples
Exemple 1 montrant les noms de zone
Dans cet exemple, vous utilisez l'expression régulière pour extraire un nom d'hôte du nom de zone. Vous pouvez créer une expression régulière si vous avez quelque chose de similaire aux noms de zone suivants :
-
S0032_myComputer1Name-HBA0
-
S0434_myComputer1Name-HBA1
-
S0432_myComputer1Name-HBA3
L'expression régulière que vous pouvez utiliser pour capturer le nom d'hôte est :
S[0-9]+_([a-zA-Z0-9]*)[_-]HBA[0-9] Le résultat est une correspondance de toutes les zones commençant par S qui sont suivies d'une combinaison de chiffres , suivie d'un trait de soulignement, du nom d'hôte alphanumérique (myComputer1Name), d'un trait de soulignement ou d'un tiret, des lettres en majuscule HBA et d'un seul chiffre (0-9). Le nom d'hôte seul est stocké dans la variable *\1*.
L'expression régulière peut être divisée en ses composants :
-
"S" représente le nom de la zone et commence l'expression. Ceci correspond uniquement à un « S » au début du nom de la zone.
-
Les caractères [0-9] entre parenthèses indiquent que ce qui suit "S" doit être un chiffre compris entre 0 et 9.
-
Le signe + indique que l'occurrence des informations entre crochets précédents doit exister 1 fois ou plus.
-
Le _ (trait de soulignement) signifie que les chiffres après S doivent être suivis immédiatement par un caractère de soulignement dans le nom de zone. Dans cet exemple, la convention de dénomination de zone utilise le trait de soulignement pour séparer le nom de zone du nom d'hôte.
-
Après le trait de soulignement requis, les parenthèses indiquent que le motif contenu dans sera stocké dans la variable \1.
-
Les caractères entre crochets [a-ZA-Z0-9] indiquent que les caractères correspondants sont tous des lettres (indépendamment du cas) et des chiffres.
-
Le * (astérisque) suivant les crochets indique que les caractères entre crochets se produisent 0 fois ou plus.
-
Les caractères entre crochets [_-] (trait de soulignement et tiret) indiquent que le motif alphanumérique doit être suivi d'un trait de soulignement ou d'un tiret.
-
Les lettres HBA dans l'expression régulière indiquent que cette séquence exacte de caractères doit se produire dans le nom de la zone.
-
Le jeu final de caractères entre parenthèses [0-9] correspond à un chiffre unique de 0 à 9 inclus.
Exemple 2
Dans cet exemple, passez au premier trait de soulignement "", puis faites correspondre E et tout ce qui suit jusqu'au second "", puis sautez tout après cela.
ZONE: Z_E2FHDBS01_E1NETAPP
NOM D'HÔTE: E2FHDBS01
RegExp: .?(E.?).*?
Exemple 3
Les parenthèses "( )" autour de la dernière section de l'expression régulière (ci-dessous) identifie la partie qui est le nom d'hôte. Si vous souhaitez que VSAN3 soit le nom d'hôte, il s'agit de : _([a-ZA-Z0-9]).*
ZONE: A_VSAN3_SR48KENT_A_CX2578_SPA0
NOM D'HÔTE: SR48KENT
RegExp: _[a-ZA-Z0-9]+_([a-ZA-Z0-9]).*
Exemple 4 montrant un modèle de dénomination plus complexe
Vous pouvez créer une expression régulière si vous avez quelque chose de similaire aux noms de zone suivants :
-
MyComputerName123-HBA1_Symm1_FA3
-
MyComputerName123-HBA2_Symm1_FA5
-
MyComputerName123-HBA3_Symm1_FA7
L'expression régulière que vous pouvez utiliser pour capturer ces expressions est :
([a-zA-Z0-9]*)_.* La variable \1 ne contiendra que _myComputerName123_ après avoir été évaluée par cette expression.
L'expression régulière peut être divisée en ses composants :
-
Les parenthèses indiquent que le motif contenu dans sera stocké dans la variable \1.
-
Les caractères entre crochets [a-ZA-Z0-9] signifient que toute lettre (quel que soit le cas) ou tout chiffre correspond.
-
Le * (astérisque) suivant les crochets indique que les caractères entre crochets se produisent 0 fois ou plus.
-
Le caractère _ (trait de soulignement) dans l'expression régulière signifie que le nom de la zone doit avoir un trait de soulignement immédiatement après la chaîne alphanumérique qui correspond aux crochets précédents.
-
Le . (point) correspond à n'importe quel caractère (caractère générique).
-
L'astérisque (*) indique que le caractère générique de la période précédente peut se produire 0 fois ou plus.
En d'autres termes, la combinaison .* indique n'importe quel caractère, n'importe quel nombre de fois.
Exemple 5 montrant les noms de zone sans motif
Vous pouvez créer une expression régulière si vous avez quelque chose de similaire aux noms de zone suivants :
-
myComputerName_HBA1_Symm1_FA1
-
myComputerName123_HBA1_Symm1_FA1
L'expression régulière que vous pouvez utiliser pour capturer ces expressions est :
(.*?)_.* La variable \1 contiendra _myComputerName_ (dans le premier exemple de nom de zone) ou _myComputerName123_ (dans le second exemple de nom de zone). Cette expression régulière correspond donc à tout ce qui précède le premier trait de soulignement.
L'expression régulière peut être divisée en ses composants :
-
Les parenthèses indiquent que le motif contenu dans sera stocké dans la variable \1.
-
Le .* (astérisque de point) correspondent à n'importe quel caractère, à n'importe quel nombre de fois.
-
Le * (astérisque) suivant les crochets indique que les caractères entre crochets se produisent 0 fois ou plus.
-
Le caractère ? rend le match non-avide. Cela la force à arrêter la correspondance au premier trait de soulignement plutôt qu'au dernier.
-
Les caractères _.* correspondent au premier trait de soulignement trouvé et à tous les caractères qui le suivent.
Exemple 6 montrant les noms d'ordinateur avec un motif
Vous pouvez créer une expression régulière si vous avez quelque chose de similaire aux noms de zone suivants :
-
Storage1_Switch1_myComputerName123A_A1_FC1
-
Storage2_Switch2_myComputerName123B_A2_FC2
-
Storage3_Switch3_myComputerName123T_A3_FC3
L'expression régulière que vous pouvez utiliser pour capturer ces expressions est :
.*?_.*?_([a-zA-Z0-9]*[ABT])_.* Comme la convention de nom de zone comporte davantage de motifs, nous pouvons utiliser l'expression ci-dessus, qui correspond à toutes les instances d'un nom d'hôte (myComputerName dans l'exemple) qui se termine par un A, un B ou un T, en plaçant ce nom d'hôte dans la variable \1.
L'expression régulière peut être divisée en ses composants :
-
Le .* (astérisque de point) correspondent à n'importe quel caractère, à n'importe quel nombre de fois.
-
Le caractère ? rend le match non-avide. Cela la force à arrêter la correspondance au premier trait de soulignement plutôt qu'au dernier.
-
Le caractère de soulignement correspond au premier trait de soulignement du nom de la zone.
-
Ainsi, la première combinaison .*?_ correspond aux caractères storage1_ dans l'exemple de nom de première zone.
-
La seconde combinaison .*?_ se comporte comme la première, mais correspond à Switch1_ dans l'exemple de nom de première zone.
-
Les parenthèses indiquent que le motif contenu dans sera stocké dans la variable \1.
-
Les caractères entre crochets [a-ZA-Z0-9] signifient que toute lettre (quel que soit le cas) ou tout chiffre correspond.
-
Le * (astérisque) suivant les crochets indique que les caractères entre crochets se produisent 0 fois ou plus.
-
Les caractères entre crochets dans l'expression régulière [ABT] correspondent à un seul caractère dans le nom de zone qui doit être A, B ou T.
-
Le symbole _ (trait de soulignement) suivant les parenthèses indique que la correspondance [ABT] doit être suivie d'un trait de soulignement.
-
Le .* (astérisque de point) correspondent à n'importe quel caractère, à n'importe quel nombre de fois.
Par conséquent, la variable \1 contient toute chaîne alphanumérique qui :
-
a été précédé d'un certain nombre de caractères alphanumériques et de deux traits de soulignement
-
a été suivi d'un trait de soulignement (puis d'un nombre quelconque de caractères alphanumériques)
-
Avait un caractère final de A, B ou T, avant le troisième trait de soulignement.
Exemple 7
Zone: myComputerName123_HBA1_Symm1_FA1
NOM D'HÔTE: myComputerName123
RegExp: ([a-ZA-Z0-9]+).*
Exemple 8
Cet exemple trouve tout avant le premier _.
Zone : MyComputerName_HBA1_Symm1_FA1
MyComputerName123_HBA1_Symm1_FA1
Nom d'hôte : MyComputerName
Regexp: (.?)_.
Exemple 9
Cet exemple trouve tout après le 1er _ et jusqu'au second _.
Zone: Z_MyComputerName_StorageName
Nom d'hôte: MyComputerName
RegExp: .?(.?).*?
Exemple 10
Cet exemple extrait "MyComputerName123" des exemples de zone.
Zone: storage1_Switch1_MyComputerName123A_A1_FC1
Storage2_Switch2_MyComputerName123B_A2_FC2
Storage3_Switch3_MyComputerName123T_A3_FC3
NOM D'HÔTE: MyComputerName123
RegExp: .?.?([a-ZA-Z0-9]+)[ABT]_.
Exemple 11
Zone: storage1_Switch1_MyComputerName123A_A1_FC1
NOM D'HÔTE: MyComputerName123A
RegExp: .?.?([a-ZA-z0-9]+).*?
Exemple 12
Le ^ (circumflex ou caret) à l'intérieur des crochets nient l'expression, par exemple, [^FF] signifie tout sauf majuscules ou minuscules F, et [^a-z] signifie tout sauf la minuscule a à z, et dans le cas ci-dessus, tout sauf le _. L'instruction format ajoute dans le "-" au nom d'hôte de sortie.
Zone: mhs_apps44_d_A_10a0_0429
Nom d'hôte: mhs-apps44-d
RegExp: ()_([AB]).*format dans les informations de l'infrastructure de données : \1-\2 ([^_])_ ()_([^_]).*format dans les informations de l'infrastructure de données : \1-\2-\3
Exemple 13
Dans cet exemple, l'alias de stockage est délimité par "\" et l'expression doit utiliser "\" pour définir qu'il y a en fait "\" utilisé dans la chaîne, et que ceux-ci ne font pas partie de l'expression elle-même.
Alias de stockage: \hosts\E2DOC01C1\E2DOC01N1
NOM D'HÔTE: E2DOC01N1
RegExp: \\.?\.?\\\(.*?)
Exemple 14
Cet exemple extrait "PD-RV-W-AD-2" des exemples de zone.
ZONE: PD_D-PD-RV-W-AD-2_01
NOM D'HÔTE: PD-RV-W-AD-2
RegExp: -(.*-\d).*
Exemple 15
Le paramètre de format dans ce cas ajoute le paramètre « US-BV- » au nom d'hôte.
ZONE: SRV_USBVM11_F1
NOM D'HÔTE: US-BV-M11
RegExp: SRV_USBV([A-Za-z0-9]+)_F[12]
Format: US-BV-\1