Exemples d'expressions régulières
Si vous avez sélectionné l’approche d’expression régulière comme stratégie de dénomination 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
Lors de la création d'expressions régulières pour la résolution automatique de Data Infrastructure Insights , vous pouvez configurer le format de sortie en saisissant 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. Un 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 de dénomination 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
Et vous souhaiterez peut-être que la sortie soit au format suivant :
[hostname]-[data center]-[device type] Pour ce faire, vous devez capturer les champs nom d’hôte, centre de données et type de périphérique dans des variables et les utiliser dans la sortie. L'expression régulière suivante ferait cela :
.*?_([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 une sortie dans votre format préféré :
\2-\1-\3 Votre résultat serait le suivant :
hostname1-Miami-filer hostname2-Tampa-switch hostname3-Boston-windows2K hostname4-Raleigh-solaris
Les traits d’union entre les variables fournissent un exemple de texte constant qui est 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 pourriez utiliser pour capturer le nom d'hôte serait :
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 de n'importe quelle combinaison de chiffres, suivis d'un trait de soulignement, du nom d'hôte alphanumérique (myComputer1Name), d'un trait de soulignement ou d'un trait d'union, des lettres majuscules 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 décomposée en ses composants :
-
« S » représente le nom de la zone et commence l’expression. Cela 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 inclus.
-
Le signe + indique que l'occurrence de l'information dans les parenthèses précédentes doit exister 1 ou plusieurs fois.
-
Le _ (trait de soulignement) signifie que les chiffres après S doivent être suivis immédiatement par un seul caractère de soulignement dans le nom de la 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 modèle contenu à l'intérieur 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 (quelle que soit la casse) et des chiffres.
-
Le * (astérisque) suivant les parenthèses indique que les caractères entre parenthèses apparaissent 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 apparaître dans le nom de la zone.
-
L'ensemble final de caractères entre crochets [0-9] correspond à un seul chiffre compris entre 0 et 9 inclus.
Exemple 2
Dans cet exemple, passez au premier trait de soulignement « _ », puis faites correspondre E et tout ce qui suit jusqu'au deuxième « _ », puis ignorez tout ce qui suit.
Zone: Z_E2FHDBS01_E1NETAPP
Nom d'hôte : E2FHDBS01
Expr. régulière : .?(E.?).*?
Exemple 3
Les parenthèses « ( ) » autour de la dernière section de l’expression régulière (ci-dessous) identifient quelle partie est le nom d’hôte. Si vous vouliez que VSAN3 soit le nom d'hôte, ce serait : _([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 :
-
monNomOrdinateur123-HBA1_Symm1_FA3
-
monNomOrdinateur123-HBA2_Symm1_FA5
-
monNomOrdinateur123-HBA3_Symm1_FA7
L'expression régulière que vous pourriez utiliser pour les capturer serait :
([a-zA-Z0-9]*)_.* La variable \1 ne contiendrait que _myComputerName123_ après avoir été évaluée par cette expression.
L'expression régulière peut être décomposée en ses composants :
-
Les parenthèses indiquent que le modèle contenu à l'intérieur sera stocké dans la variable \1.
-
Les caractères entre crochets [a-zA-Z0-9] signifient que n'importe quelle lettre (quelle que soit la casse) ou chiffre correspondra.
-
Le * (astérisque) suivant les parenthèses indique que les caractères entre parenthèses apparaissent 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 correspondant aux crochets précédents.
-
Le . (point) correspond à n'importe quel caractère (un caractère générique).
-
L'astérisque * indique que le caractère générique du point précédent peut apparaître 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 des noms de zone sans modèle
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 pourriez utiliser pour les capturer serait :
(.*?)_.* La variable \1 contiendrait _myComputerName_ (dans le premier exemple de nom de zone) ou _myComputerName123_ (dans le deuxième exemple de nom de zone). Cette expression régulière correspondrait donc à tout ce qui précède le premier trait de soulignement.
L'expression régulière peut être décomposée en ses composants :
-
Les parenthèses indiquent que le modèle contenu à l'intérieur sera stocké dans la variable \1.
-
Le .* (point astérisque) correspond à n'importe quel caractère, n'importe quel nombre de fois.
-
Le * (astérisque) suivant les parenthèses indique que les caractères entre parenthèses apparaissent 0 fois ou plus.
-
Le caractère ? rend le match non gourmand. Cela l'oblige à 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 des noms d'ordinateurs avec un modèle
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 pourriez utiliser pour les capturer serait :
.*?_.*?_([a-zA-Z0-9]*[ABT])_.* Étant donné que la convention de dénomination de zone présente davantage un modèle, nous pourrions utiliser l'expression ci-dessus, qui correspondra à 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 décomposée en ses composants :
-
Le .* (point astérisque) correspond à n'importe quel caractère, n'importe quel nombre de fois.
-
Le caractère ? rend le match non gourmand. Cela l'oblige à 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 le premier exemple de nom de zone.
-
La deuxième combinaison .*?_ se comporte comme la première, mais correspond à Switch1_ dans le premier exemple de nom de zone.
-
Les parenthèses indiquent que le modèle contenu à l'intérieur sera stocké dans la variable \1.
-
Les caractères entre crochets [a-zA-Z0-9] signifient que n'importe quelle lettre (quelle que soit la casse) ou chiffre correspondra.
-
Le * (astérisque) suivant les parenthèses indique que les caractères entre parenthèses apparaissent 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 la zone qui doit être A, B ou T.
-
Le _ (trait de soulignement) suivant les parenthèses indique que la correspondance du caractère [ABT] doit être suivie d'un trait de soulignement.
-
Le .* (point astérisque) correspond à n'importe quel caractère, n'importe quel nombre de fois.
Le résultat de ceci amènerait donc la variable \1 à contenir n'importe quelle chaîne alphanumérique qui :
-
était précédé d'un certain nombre de caractères alphanumériques et de deux traits de soulignement
-
était suivi d'un trait de soulignement (puis de n'importe quel nombre de caractères alphanumériques)
-
avait un caractère final A, B ou T, avant le troisième trait de soulignement.
Exemple 7
Zone : monNomOrdinateur123_HBA1_Symm1_FA1
Nom d'hôte : monNomOrdinateur123
Expr. régulière : ([a-zA-Z0-9]+)_.*
Exemple 8
Cet exemple trouve tout ce qui se trouve avant le premier _.
Zone : MonOrdinateur_HBA1_Symm1_FA1
MyComputerName123_HBA1_Symm1_FA1
Nom d'hôte : MyComputerName
Exp régulière : (.?)_.
Exemple 9
Cet exemple trouve tout ce qui se trouve après le 1er _ et jusqu'au deuxième _.
Zone : Z_NomDeMonOrdinateur_NomDeStockage
Nom d'hôte : NomMonOrdinateur
Expr. régulière : .?(.?).*?
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 ^ (circonflexe ou caret) à l'intérieur des crochets nie l'expression, par exemple, [^Ff] signifie tout sauf F majuscule ou minuscule, et [^az] signifie tout sauf les minuscules a à z, et dans le cas ci-dessus, tout sauf le _. L'instruction de format ajoute le « - » au nom de l'hôte de sortie.
Zone: mhs_apps44_d_A_10a0_0429
Nom d'hôte : mhs-apps44-d
RegExp: ()_([AB]).*Format dans Data Infrastructure Insights: \1-\2 ([^_])_ ()_([^_]).*Format dans Data Infrastructure Insights: \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 réellement des « \" utilisés dans la chaîne, et qu'ils 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
Expr. régulière : -(.*-\d).*
Exemple 15
Le paramètre de format dans ce cas ajoute le « US-BV- » au nom d'hôte.
Zone: SRV_USBVM11_F1
Nom d'hôte : US-BV-M11
Expr. régulière : SRV_USBV([A-Za-z0-9]+)_F[12]
Format : US-BV-\1