Les expressions régulières en Perl pour le novice - Partie 6 Introduction Ceci est la sixième partie de ma série, les expressions régulières en Perl pour le novice. Bon nombre des exemples que nous avons rencontrés sont des exemples simples. Dans cette section, nous examinons deux exemples qui sont plus exigeants. Avant de quitter cette partie de la série, nous parlons de ce qui est appelé Backtracking, puis nous regardons de nouveau à la x modificateur.
Étapes nécessaires pour construire un masque Ce sont les étapes nécessaires pour construire un masque: * Spécifiez la tâche en détail, * Décomposer le problème en parties plus petites, * Traduire les petites pièces dans les expressions rationnelles, * Mélanger les expressions rationnelles, * Optimiser la finale combinée regexes. Deux exemples Exemple 1 code hexadécimal Couleur Vérifiez Spécifier la tâche en détail un exemple de code de couleur hexadécimal est # 4C8. Un autre exemple est # 44CC88. * Il commence avec un hachage, suivies soit de 3 nombres hexadécimaux ou 6 nombres hexadécimaux.
* Les chiffres hexadécimaux sont: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F. * Les lettres hexadécimaux peuvent être en minuscules ou majuscules. Découpant le problème en parties plus petites * Il commence par un #. * Il est suivi de 3 chiffres hexadécimaux ou * 6 nombres hexadécimaux * Il n'y a pas de caractère après les 3 ou 6 chiffres hexadécimaux. Traduire en regexes Il ya trois petites pièces ci-dessus.
La première partie donne à l'expression rationnelle: /^ # /La deuxième partie donne à l'expression rationnelle: /[0-9a-fA-F] {3} /La troisième partie donne à l'expression rationnelle: /[0-9a-fA-F] { 6} /La dernière partie donne à l'expression régulière /$ /Combinant le Regexes Ceci est l'expression rationnelle combinée: /^ # ([0-9a-fA-F] {3} $) | ([0-9a-fA-F] {6} $) /Notez le métacaractère suppléant, | pour les trois ou six chiffres hexadécimaux. A noter également les parenthèses qui séparent les groupes alternés.
Optimisation de la Regex combinée Cela signifie raccourcir l'expression rationnelle combinée. Notez que 0-9 est abrégé à \\ d. Donc, dans l'expression rationnelle combinée, nous changeons les deux occurrences de 0-9 \\ D. Il ya en fait deux groupes; nous réduisons ces à un groupe par la suppression des crochets intérieurs. Le regex est optimisé: /^ # ([\\ da-FA-F] {3} $ | [\\ da-FA-F] {6} $) /Cette expression est plus courte que ce qui précède par quatre personnages.
Le code suivant illustre