Dans les expressions régulières:
- Quelle est la différence entre
^
et\A
? Quelle est la différence entre$
et\Z
?
Dans les expressions régulières:
^
et \A
? Quelle est la différence entre $
et \Z
?En mode ligne unique, $
correspond soit à la fin de la chaîne, soit juste avant le retour à la fin de la chaîne. En mode multiligne $
correspond avant chaque nouvelle ligne dans la chaîne. \Z
correspond toujours à la fin de la chaîne quel que soit le mode de ligne. Idem avec ^
par rapport à \A
.
désolé mais ce n'est pas tout à fait raison. '\ Z' correspond à la fin de la chaîne ** OU ** un avant la fin de la chaîne si le dernier caractère est un \ n. Pour la version absolument, non-oh-juste-dans-cas, vous voulez '\ z' (peu zed pas BIG ZED), qui est garanti pour correspondre seulement s'il n'y a plus de caractères. Dans certains langages regex, BTW, ce qui compte comme un retour à la ligne peut être flexible; Si vous avez de la chance, cela correspond '(?: (?> \ r \ n) | \ v)' pour toute séquence de saut de ligne, où '\ v' est la propriété Unicode' \ p {Vertical_Space} '. – tchrist
Une autre chose: le mode mono-ligne n'est * pas * l'opposé du mode multiligne; ils sont complètement séparés. Le mode multiligne modifie le comportement de '^' et '$' comme vous l'avez décrit, tandis que le mode à une seule ligne permet '.' de faire correspondre les caractères de séparateur de ligne. –
Et une note au commentaire de tchrist: en Python 're',' \ Z' est égal à '\ z' en Perl/.NET/Java/PCRE. –
Ils sont différents lorsqu'il s'agit de faire correspondre une chaîne avec plusieurs lignes.
^peut correspondre au début de la chaîne et après chaque saut de ligne. \ Une seule correspondance au début de la chaîne
$ peut correspondre à la fin de la chaîne et avant chaque saut de ligne. \ Z ne correspond jamais à la fin de la chaîne.
Voir perldoc perlre.
Le \ A et \ Z sont comme «^» et « $ », sauf qu'ils ne correspondent pas à plusieurs reprises lorsque le modificateur/m est utilisé, alors que «^» et « $ "correspondra à chaque limite de ligne interne. Pour correspondre la fin réelle de la chaîne et non ignorer une nouvelle ligne de fin facultative, utilisez \ z.
Quelle est la saveur de regex de quelle langue? –
En PHP. PHP depuis 5.3 utilise seulement PCRE (Reg Ex compatible Perl) et d'autres ENgines ont été déconseillés en faveur de PCRE. Donc, fondamentalement style PERL –
connexes: http://stackoverflow.com/questions/4020792/regular-expressions-difference-between-and-a –