Cependant, '6' dans l'expression rationnelle ne correspond pas à «5» dans la chaîne disponible, ce qui est un impasse. Il revient en arrière d'un caractère dans la chaîne disponible et prend la seconde alternative dans le second groupe «4». '4' I. matchs. Le deuxième groupe est satisfait. J. Nous sommes à la fin de l'expression rationnelle; nous avons fini! Nous avons identifié le '1234' sur la chaîne disponible "12345". Il ya deux choses à noter à propos de ce processus.
Tout d'abord, la troisième alternative dans le second groupe '45' permet également un match, mais le processus est arrêté avant qu'il ne soit à la troisième alternative - à une position donnée, le plus à gauche conquiert. Deuxièmement, le processus était en mesure d'obtenir un match à la première position de caractère de la chaîne disponible '1'. Si il n'y avait pas les matchs de la première position, Perl serait passer à la deuxième position de caractère «2» et de tenter le match tout recommencer.
Perl abandonne et déclare "12345" = ~ /(124 | 123) (46 | 4 | 45) /, être fausse, que lorsque tous les chemins possibles dans toutes les positions de caractères possibles ont été épuisées. Le x Modifier les détails Ce modificateur est réglé en mettant x (en minuscule) juste à côté de la seconde barre oblique de l'expression rationnelle. Voilà: /modèle /x Wwhitespace caractères de données dans le modèle sont ignorés, sauf lorsqu'ils sont échappés, ou à l'intérieur d'une classe de personnage, quand ce modificateur est réglé.
Si ce modificateur est réglé, les caractères entre # non échappés et en dehors d'une classe de personnage et de la \\ n prochain caractère, inclusivement, sont également ignorées. Je vais illustrer tout cela. Il dit les caractères d'espacement dans le modèle sont ignorés, sauf lorsqu'ils sont échappés, ou à l'intérieur d'une classe de personnage. Considérez la chaîne disponible: $ availableString = "Je suis un homme assis."; Les deux expressions suivantes avec le x modificateur ne