La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Expressions Régulières

Présentations similaires


Présentation au sujet: "Expressions Régulières"— Transcription de la présentation:

1 Expressions Régulières
cch

2 Sommaire  Introduction  Concepts généraux des expressions régulières
 Caractères motifs de correspondance des expressions régulières Cisco  Motifs avec caractère unique  Motifs avec caractères multiples  Multiplieurs  Alternative  Ancrage  Paranthèses de rappel  Exemples d'expression régulières - Correspondance de motif d'expression régulière dans une liste d'accès Correspondance de motif d'expression régulière dans des scripts - Correspondance de motif d'expression régulière dans des entrées de routage X25 - Correspondance de motif d'expression régulière dans un ensemble de règles de traduction de protocole cch

3 Concepts généraux des expressions régulières
Introduction Ce document explique les expressions régulières et montre comment les utiliser dans les commandes du logiciel IOS Cisco. Il fournit également des détails pour la compo- sition des expressions régulières. Ce document a les sections suivantes:  Concepts généraux des expressions régulières  Caractères motifs de correspondance des expressions régulières Cisco  Motifs avec caractère unique  Motifs avec caractères multiples  Multiplieurs  Alternative  Ancrage  Paranthèses de rappel  Exemples d'expression régulières Concepts généraux des expressions régulières Une expression régulière est entrée comme partie d'une commande et c'est un motif constitué de symboles, de lettres et de chiffres qui représentent une chaîne d'entrée pour faire une correspondance ( ou quelquefois une non correspondance). Faire cor- respondre une chaîne au motif spécifié s'appelle correspondance de motif. La correspondance de motif réussit ou échoue. Si une expression régulière peut cor- respondre à deux parties différentes d'une chaîne entrée, elle correspondra d'abord avec la première partie. Les configurations Cisco utilisent la correspondance de motif d'expressions régulières dans plusieurs implémentations. Voici une liste de quelques unes de ces implémenta- tions:  BGP IP AS-Path et listes d'accès X  Modem et scripts système  Fonctionnalité de substitution de route X25  Scripts ensemble de règles de traduction de protocole. cch

4 Caractères motifs de correspondance des expressions régulières Cisco
Le tableau suivant résume les caractères de base des expressions régulières de l'IOS Cisco et leurs fonctions: Caractère Expression Régulière Fonction Exemples . Correspond à un seul caractère. 0.0 correspond à 0x0 et 020 t..t correspond aux chaînes test, text et tart. \ Correspond avec le caractère qui suit ce symbole. Correspond également à de caractères spéciaux (escapes). 172\.1\.. correspond avec mais pas à \. permet à un point de correspondre à un point [ ] Correspondance avec les caractères ou l'intervalle de caractères séparés par un tiret entre les crochets. [02468a-z] correspond avec 0, 4 et w mais pas avec 1, 9 ou K ^ Correspondance avec le caractère ou la chaîne null au début de la chaine entrée. ^123 correspond avec 1234 mais pas avec 01234 ? Correspondance avec aucune ou une occurrence du motif. (faire précéder le point d'interrogation par Ctrl-V pour éviter qu'il soit interprété comme une commande d'aide? ba?b correspond avec bb et bab $ Correspondance avec le caractère ou la chaîne null à la fin de la chaine entrée. 123$ correspond avec 0123 mais pas avec 1234 * Correspondance avec aucune ou plu- sieurs séquences du caractère précédent l'astérisque. Agit également comme caractère de remplacement pour la correspondance avec tout ca- ractère. 5* correspond avec toute occurrence du chiffre 5 y compris aucune 18\..* correspond aux caractères 18\ et à tout caractère qui suit 18. + Correspondance avec une ou plusieurs séquences du caractère qui précède le signe plus. 8+ requiert la correspondance avec au moins un chiffre 8 dans la chaîne ()[] Emboîtement de caractères pour la correspondance. Séparation des extrémités avec un tiret. (17)* correspond à tout nombre conte-nant la chaîne de caractères 17 ([A-Za-z][0-9])+ correspond avec une ou plusieurs instances des paires lettre-chiffre: b8 et W4 en sont des exemples cch

5 Motifs avec caractère unique
Expression Régulière Fonction Exemples | Concatène les constructions. Corres- pondance avec un des caractère ou un motif de caractères placé de cha- que côté de la barre verticale. A(B|C)D correspond avec ABD et ACD mais pas avec AD, ABCD, ABBD ou ACCD _ Remplace une liste expression réguliè-re longue par la correspondance avec une virgule (,), la parenthèse ouverte ({), la parenthèse fermée (]), le début de la chaîne entrée, la fin de la chaîne entrée ou un espace Les caractères _1300_ peuvent cor-respondre à une des chaînes sui-vantes: ^1300$ ^1300espace espace1300 {1300, ,1300, {1300} ,1300} L'ordre pour la correspondance utilisant les caractères * ou + est la construction la plus en premier. Les constructions emboîtées sont traitées de l'extérieur vers l'inté- rieur. Les constructions chaînées sont traitées de la gauche vers la droite. Si une expression régulière peut correspondre à deux parties différentes d'une chaîne entrée alors la correspondance sera faite sur la partie entrée en premier. Motifs avec caractère unique L'expression régulière la plus simple est un caractère unique qui correspond avec lui- même dans la chaîne entrée. Par exemple, l'expression régulière avec caractère unique 3 correspond avec 3 dans la chaîne entrée. Vous pouvez utiliser les chiffres (0 à 9) et les lettres (A à Z, a à z) comme motif caractère unique. Vous pouvez également utiliser un caractère du clavier autre qu'un lettre ou un chiffre tel que le point d'exclamation (!) ou la tilde (~) comme motif caractère unique mais pas les caractères listés dans le tableau précédent qui ont des significations particulières quand ils sont utilisés dans des expressions régulières. Pour utiliser les caractères du tableau précédent comme motif caractère unique, reti- rez la signification particulière en faisant précéder le caractère par un anti-slash (\). Les exemples suivants sont des motifs avec caractère unique correspondant respecti- vement ai sign $, souligné et plus: \$ \_ \+ Vous pouvez spécifier un intervalle de motifs avec caractère unique pour la correspon- dance avec une chaîne. par exemple vous pouvez créer une expression régulière qui correspond à une chaîne contenant une des lettres suivantes: a, e, i, o et u. Un seul et seulement un seul de ces caractères doit exister dans la chaîne pour que la corres- pondance de motif soit réussie. Pour spécifier un intervalle de motifs avec caractère unique, encadrer les motifs caractère unique par des crochets ([ ]). L'ordre des caractè- res entre les crochets n'a pas d'importance. Par exemple [aeiou] correspond à une des cch

6 Motifs avec caractères multiples
cinq voyelles de l'alphabet tandis que [abcdABCD] correspond à une des quatre pre- mières lettres minuscules ou majuscules de l'alphabet. Vous pouvez simplement représenter les intervalles en entrant les extrémités de l'in- tervalle séparées par un tiret (-). Simplification des intervalles précédents comme suit: [a-bA-D] Pour ajouter un tiret comme motif caractère unique, incluez un autre tiret précédé par un anti-slash: [a-bA-D\-] Vous pouvez inclure un crochet fermé (]) comme motif caractère unique dans votre intervalle. Faites comme suit: [a-bA-D\-\]] L'exemple précédent correspond avec une des quatre premières lettres minuscules ou majuscules de l'alphabet, un tiret ou un crochet fermé. Vous pouvez inverser la correspondance pour un intervalle en utilisant le signe (^) au début de l'intervalle. L'exemple suivant correspond avec toutes les lettres sauf celles indiquées: [^a-dqsv] L'exemple suivant correspond à tout sauf au crochet fermé (]) ou la lettre d: [^\]d] Motifs avec caractères multiples A la création d'expressions régulières vous pouvez spécifier un motif pouvant contenir plusieurs caractères. Vous créez des expressions régulières à caractères multiples en regroupant des lettres, des chiffres ou des caractères clavier qui n'ont pas de significa- tion spéciale. Par exemple a4% est une expression régulière à caractères multiples. Faites précéder les caractères clavier qui ont une signification spéciale par un carac- tère anti-slash (\) quand vous voulez retirer leur signification spéciale. Avec des motifs à caractères multiples, l'ordre est important. L'expression régulière a4% fait la correspondance avec le caractère a puis avec le caractère 4 puis enfin avec le caractère %. Si la chaîne entrée n'est pas dans l'ordre a4%, la correspondance de motif échoue. L'expression régulière utilise la signification spéciale du caractère (.) pour faire la correspondance avec le caractère a suivi de n'importe quel caractère. Dans ce cas, les chaînes ab, a! et a2 correspondent toutes avec l'expression régulière. Vous pouvez créer des expressions régulières à caractères multiples ne contenant que des lettres, des chiffres, des caractères clavier ou une combinaison de lettres, de chif- fres et de caractères clavier. cch

7 Multiplieurs Vous pouvez créer des expressions régulières plus complexes qui indiquent au logiciel
IOS cisco de faire la correspondance avec plusieurs occurrences d'une expression ré- gulière particulière. Pour réaliser cela, vous utilisez des caractères spéciaux avec vos motifs à caractère unique ou à caractères multiples. L'exemple suivant correspond à toute occurrence de la lettre a y compris aucune a* Le motif suivant requiert que au moins une lettre a soit présente dans la chaîne pour que la correspondance soit faite. a+ La chaîne suivante correspond avec un nombre quelconque d'astérisque. \** Pour utiliser des multiplieurs avec des motifs à caractères multiples, mettre le motif entre parenthèses. Dans l'exemple suivant, le motif correspond à tout nombre de chaîne de caractères ab. (ab)* Comme exemple plus complexe voici le motif suivant qui correspond à une ou à un nombre quelconque d'instances de paires alphanumériques (mais pas aucune; ce qui veut dire qu'une chaîne vide n'a pas de correspondance). ([A-Za-z][0-9])+ Alternative L'alternative vous permet de spécifier des motifs alternatifs pour la correspondance avec une chaîne. séparez les motifs alternatifs avec la barre verticale (|). Une seule de ces alternatives peut correspondre avec la chaîne entrée. Par exemple, l'expression ré- gulière codex|telebit correspond à la chaîne codex ou à la chaîne telebit mais pas aux deux. Ancrage Vous pouvez indiquer au logiciel IOS Cisco de faire la correspondance avec le motif d'expression régulière à partir du début ou de la fin de la chaîne entrée. Ce qui veut dire que vous pouvez spécifier que le début ou la fin d'une chaîne contient un motif particulier. cch

8 Parenthèses de rappel cch
Par exemple l'expression suivante correspond à une chaîne entrée si la chaîne débute par abcd. ^abcd Tandis que l'expression suivante est un intervalle qui correspond à tout lettre unique tant que ce ne sont pas les lettres a, b, c ou d [^abcd] Avec l'exemple suivant, l'expression régulière correspond avec la chaîne entrée se ter- minant par .12. \.12$ Comparez cet ancrage de caractères avec le caractère souligné (_). Le caractère souli- gné correspond au début de la chaîne (^), à la fin de la chaîne ($), à l'espace ( ), aux accolades, à la virgule ou au souligné. Avec le caractère souligné, vous pouvez spéci- fier qu'un motif existe quelque part dans la chaîne. Par exemple _1300_ correspond à toute chaîne 1300 quelque part dans une chaîne. La chaîne 1300 peut être précédée ou terminée par un espace, une accolade, une virgule ou un souligné. Ainsi {1300_ correspond dans la chaîne et non dans la chaîne Parenthèses de rappel Comme cela est montré dans la section "Multiplieurs", vous utilisez des parenthèses avec des expressions à caractères multiples pour multiplier les occurrences pour un motif. Vous pouvez également utiliser des parenthèses pour encadrer un motif carac- tère unique ou caractères multiples pour indique au logiciel IOS Cisco de garder le motif en mémoire afin de l'utiliser ailleurs dans l'expression régulière. Pour créer une expression régulière qui rappelle un motif précédent, utilisez les paran- thèses pour mémoriser un motif particulier et un anti-slash suivi d'un entier pour ré- utiliser le motif mémorisé. L'entier spécifie l'occurrence d'un motif entre parenthèses dans une expression régulière. Si vous avez plus d'un motif mémorisé dans votre ex- pression régulière alors \1 utilise le premier motif mémorisé, \2 utilise le second mo- tif mémorisé et ainsi de suite. L'expression régulière suivante utilise les parenthèses pour le rappel: a(.)bc(.)\1\1 Cette expression régulière correspond avec la lettre a suivie par un caractère quelcon- que (appelez le #1) suivi de bc, suivi par un caractère quelconque (appelez le #2), suivi du caractère #1 de nouveau, suivi de caractère #2 de nouveau. De cette façon, l'ex- pression régulière peut correspondre à AZbcTZT. Le logiciel identifie le caractère #1 comme Z et le caractère #2 come T et ensuite utilise de nouveau Z et T plus loin dans l'expression régulière. cch

9 Exemples d'expressions régulières
Les parenthèses ne changent pas le motif; elles indiquent au logiciel la partie de la chaîne qui doit correspondre. L'expression régulière (a)b correspond toujours à la chaîne ab et (^3107) correspond toujours à une chaîne débutant par 3107 mais le lo- giciel IOS Cisco peut rappeler a de la chaîne ab et le début 3107 pour une chaîne et usage futur. Exemples d'expressions régulières Cette section fournit les exemples pratiques d'utilisation d'expressions régulières.  Correspondance de motif d'expression régulière dans une liste d'accès  Correspondance de motif d'expression régulière dans des scripts  Correspondance de motif d'expression régulière dans des entrées de routage X25  Correspondance de motif d'expression régulière dans un ensemble de règles de traduction de protocole Correspondance de motif d'expression régulière dans une liste d'accès La fonctionnalité chemin système autonome de BGP et les instructions de configura- tion de liste d'accès X29 peuvent utiliser des motifs d'expressions régulières pour la correspondance d'adresses pour autoriser et refuser l'accès. L'exemple BGP suivant contient l'expression régulière ^123.*. Cet exemple spécifie que le voisin BGP avec l'adresse ne reçoit ni ne transmet d'annonces sur tout chemin de ou vers le système autonome voisin ip as-path access-list 1 deny ^123 .* router bgp 109 network neighbor remote-as 123 neighbor remote-as 47 neighbor filter-list 1 out L'exemple suivant utilise la chaine expression régulière ^4$ pour configurer le routeur pour qu'il reçoive uniquement les routes dont l'origine est le système autonome 4. ip as-path access-list 1 permit ^4$ router bgp 1 neighbor remote-as 4 neighbor route-map foo in route-map foo permit 10 match as-path 1 cch

10 Correspondance de motif d'expression régulière dans des scripts
Une liste d'accès X29 peut contenir un nombre quelconque d'items liste d'accès. Les items de la liste d'accès sont traités dans l'ordre avec lequel ils ont été entrés, avec le premier motif expression régulière rencontré répondant à la condition permit ou deny. L'exemple suivant permet la connexion des hosts avec des adresses débutant par la chaîne 31370: X29 access-list 2 permit ^31370 Correspondance de motif d'expression régulière dans des scripts Sur les lignes asynchrones, les scripts de dialogue transmettent des commandes pour la numérotation par des modems et la connexion à des systèmes distants. Vous utili- sez une expression régulière dans la commande script dialer pour spécifier le nom du script de dialogue que le logiciel IOS Cisco utilise pour une connexion vers un ou plu- sieurs sites sur une interface asynchrone. Vous pouvez également utiliser des expressions régulières pour la commande dialer map pour spécifier un script modem ou système utilisé pour une connexion vers un ou plusieurs site sur une interface asynchrone. L'exemple suivant utilise les expressions régulières telebit.* et usr.* pour identifier les scripts de dialogue pour les modems Telebit et USRobotics. Quand le nom du script de dialogue (la chaîne) correspond à l'expression régulière (motif spécifié dans la com- mande), ensuite le logiciel IOS Cisco utilise le script de dialogue pour les lignes spéci- fiées. Pour les lignes 1 à 6, le logiciel IOS Cisco utilise le script de dialogue nommé telebit suivi d'un nombre quelconque d'occurrence (*) d'un caractère quelconque (.). Pour les lignes 7 à 12, le logiciel utilise le script de dialogue nommé usr suivi d'un nombre quelconque d'occurrence (*) d'un caractère quelconque (.). ! Des lignes ont des modems Telebit. line 1 6 chat-script telebit.* ! Des lignes ont des modems US Robotics. line 7 12 chat-script usr.* Si vous respectez la convention de nommage d'un script de dialogue de la forme [modem-script*modulation-type] dans la commande dialer map, .*v32bis par exemple, ceci vous permet de spécifier le meilleur type de modulation pour le système que vous appelez et autoriser le type de modem pour la ligne devant être spécifiée par le modem dans la commande chat-script. L’exemple suivant montre l'utilisation de scripts de dialogue implémentés avec les op- tions system-script et modem-script de la commande dialer map. S'il y a du trafic pour l'adresse IP , le routeur numérote en utilisant le script usrobotics- v32 qui correspond à l'expression régulière dans le script de dialogue modem. Ensuite le routeur utilisera le script de dialogue unix-slip comme script système pour le login. S'il y a du trafic pour , le routeur numérote 8899 en utilisant le script de dia- logue usrobotics-v32 qui correspond aux expressions régulières modem script et cch

11 Correspondance de motif d'expression régulière dans des entrées de
et modem chat script. Le routeur se connectera en utilisant le script cisco-compressed. ! Script for dialing a usr v.32 modem: chat-script usrobotics-v32 ABORT ERROR "" "AT Z" OK "ATDT \T" TIMEOUT 60 CONNECT \c ! ! Script for logging into a UNIX system and starting up SLIP: chat-script unix-slip ABORT invalid TIMEOUT 60 name: billw word: wewpass ">" "slip default" ! Script for logging into a Cisco access server and starting up TCP header ! compression: chat-script cisco-compressed... line 15 script dialer usrobotics-* interface async 15 dialer map ip system-script *-v32 system-script cisco-compressed 91800 dialer map ip modem-script *-v32 modem-script cisco-compressed 91800 Correspondance de motif d'expression régulière dans des entrées de routage X25 La commande x25 route est utilisée pour créer une entrée dans la table de routage que le routeur consulte pour savoir où acheminer les communications entrantes et placer le paquet sortant du PAD ou les appels avec traduction de protocole. Les ex- pressions régulières sont utilisées avec la commande x25 route pour autoriser des opérations de correspondance de motif sur les adresses et les données utilisateur. Une opération commune est d'utiliser la correpondance de préfixe sur le champ DNIC (Data Network Identification Code) X.121 et la route correspondante. Le signe ^ ancre la correspondance au début du motif. Dans l'exemple suivant, la commande x25 route fait que tous les appels X25 vers les adresses dont les quatre premiers chiffres du DNIC sont 1111 sont routés vers l'inter- face serial 3. Notez que les quatre premiers chiffres (^1111) sont suivis par un motif d'expression régulière que le logiciel IOS Cisco doit mémoriser pour utilisation future. Le \1 dans le motif de reécriture rappelle la partie de l'adresse originale qui corres- pond aux chiffres qui suivent 1111 et change les quatre premiers chiffres par 2222. x25 route ^1111(.*) substitute-dest 2222\1 interface serial 3 L'exemple suivant route tout les appels entrants qui commencent par 2222 vers le DLCI (Data Link Connection Identifier) spécifié. x25 route ^2222 interface serial 1 dlci 20 L'exemple suivant utilise l'expression régulière ^ pour éviter (effacer) le routage X.25 pour les appels qui ne spécifient pas d'adresse source. x25 route source ^$ clear cch

12 de règles de traduction de protocole
Correspondance de motif d'expression régulière dans un ensemble de règles de traduction de protocole Note: Les ensembles de règles de traduction sont supportés uniquement depuis la release 12.3(8)T de l'IOS Cisco et suivantes. Les expressions régulières pour la fonctionnalité "Protocol Translation Ruleset" a deux utilisations: une chaîne texte correspond avec un motif défini et elles peuvent utiliser l'information d'une opération de correspondance à partir d'une expression régulière définie pour créer une chaîne de substitution. Ces opérations sont réalisées en combi- nant les caractères décrits dans le premier tableau avec les commandes du mode de configuration ensemble de règles de traduction. Pour comprendre la correspondance de motif d'expression régulière, commencez par utiliser le premier tableau pour interpréter l'expression régulière suivante pour faire la correspondance avec une chaîne débutant par les caractères : ^172\.18\..* L'expression régulière suivante correspond à un numéro à cinq chiffres commençant par 10 ou 11: ^1[0-1]...$ Considérez l'ensemble d'actions dans un ensemble de règles appelé B. Cet ensemble de règles écoute des connexions Telnet entrantes d'une adresse IP particulière et un numéro de port mais ignore les autres, décide à quelle adresse destination de PAD la connexion entrante doit être connectée et finalement fixe le timer idle de la connexion X25 VC du PAD à partir du premier chiffre du port. translate ruleset B from telnet to pad match dest-addr ^ (..)$ dest-port ^20..$ skip dest-addr ^ $ set pad dest-addr 4444 substitute telnet dest-port ^200(.)$ into pad idle \1 Le signe ^ ancre une correspondance au début de la chaîne. Dans cet exemple pour l'adresse destination et 20 pour le numéro de port destination. Les parenthèses sont un outil très puissant pour l'opération de correspondance d'ex- pression régulière car elles identifient un groupe de caractères nécessaires à la substi- tution. Combiné avec substitution… dans l'instruction, les parenthèses peuvent créer de manière dynamique un grand nombre de motifs chaîne et de configurations de con- nexion. Dans l'exemple, les points entre paranthèses peut être interprétés comme des places réservées pour les caractères à substituer. Le signe $ ancre la correspondance de substitution à la fin de la chaîne. L'anti-slash précédant le numéro en fait une valeur littérale ainsi aucune substitution ne sera faite sur le paramètre idle. cch

13 La commande test translate ruleset teste le script et fournit un rapport comme ce-
lui qui suit: Translate From: Telnet Port 2000 To: PAD 4444 Ruleset B 0/1 users active Considérez l'expression suivante plus complexe: ^172\.18\.(10)\.(.*)$. Cette expression correspond avec toute chaîne commençant par et identifie deux groupes, un qui correspond à 10 et un autre qui correspond avec un caractère générique. Disons que l'expression régulière ^172\.18\.(10)\.(.*)$ correspond aux caractères d'un connexion entrante. Quand la correspondance est trouvée le logiciel place les groupes de caractères 10 et 255 en mémoire et écrivent les groupes dont la correspondance à été trouvée avec une expression de substitution. La substitution de l'expression régulière dans l'expression \1\2 génère la chaîne L'expression régulière \0 écrit la chaîne correspondante dans sa totalité et la substitution dans l'expression 0001\0 génère la chaîne cch


Télécharger ppt "Expressions Régulières"

Présentations similaires


Annonces Google