Nous insistons également pour que le nom ne doit pas être inférieure à 3 caractères ou plus que 18 caractères. Dans cet exemple, nous avons imposé les détails de spécification. Briser le problème en petites parties le nom est composé de * lettres de l'alphabet en minuscules ou supérieure entre 3 à 18 lettres, inclusivement, et /ou * chiffres de 0 à 9 entre 3 à 18 chiffres, y compris, et /ou * le trait de soulignement entre 3 à 18 chiffres, inclusivement. Cela signifie, vous pouvez avoir jusqu'à 18 caractères de soulignement pour un nom. Laissons ce que pour la simplicité.
* Nous devons limiter la chaîne à la disposition 3 ou 6 caractères. Traduire en expressions rationnelles l'expression rationnelle pour la première partie est: /^ [a-zA-Z] {} 3,18 $ /l'expression régulière pour la deuxième partie est: /^ [0-9] {} 3,18 $ /Le regex pour la troisième partie est: /^ [_] {} 3,18 $ /Combinant le Regexes Dans la section de rupture vers le bas, la troisième partie ci-dessus sont combinés avec la phrase, "et /ou" Il n'y a aucun moyen direct de faire cela, nous devons donc déduire.
Ceci est l'expression rationnelle combinée: /^ [a-zA-Z0-9 _] {} 3,18 $ /Optimisation de la Regex combinée Cela signifie raccourcir l'expression rationnelle combinée. Notez que la classe [a-zA-Z0-9_] est l'abréviation \\ w. Le regex est optimisé: /^ [\\ w] {} 3,18 $ /Revenant Nous avons vu comment faire correspondre des alternatives en utilisant le métacaractère de l'alternance, |. Lorsque correspondant alternatives, Perl utilise un processus connu sous le nom retours en arrière. Je vais illustrer cela par un exemple.
Considérons l'expression suivante: "12345" = ~ /(124 | 123) (46 | 4 | 45) /Je vais vous expliquer retour en arrière en expliquant le fonctionnement de l'expression ci-dessus. Les étapes suivantes expliquent comment PHP résout l'expression ci-dessus. A. Il commence avec le premier numéro de la chaîne disponible '1'. B. Il essaie la première alternative dans le premier groupe «124». C. Il voi