La variante avec le +, c’est pour empêcher le moteur d’enregistrer des états pour le backtracking ; en gros, c’est "ce que je prend, je le rend jamais" (d’où le nom: opérateur possessif)
En gros, a++a ne fonctionnera jamais, au contraire de a+a. Cas d’utilisation typique: matcher une string C/C++: un machin entre guillemets doubles pouvant contenir des guillemets doubles échappés et des caractères d’échappement échappés (de tête):
"(\.|[^"\])++"
Sans le ++, cette expression reconnaît très bien : "hello\" alors qu’on ne le veut pas
[^] # Re: RE2 et références arrières.
Posté par Moonz . En réponse à la dépêche Google libère la bibliothèque d'expressions rationnelles RE2. Évalué à 1.
Si tu veux en savoir plus, je te conseille ça: http://oreilly.com/catalog/9781565922570
En gros, a++a ne fonctionnera jamais, au contraire de a+a. Cas d’utilisation typique: matcher une string C/C++: un machin entre guillemets doubles pouvant contenir des guillemets doubles échappés et des caractères d’échappement échappés (de tête):
"(\.|[^"\])++"
Sans le ++, cette expression reconnaît très bien : "hello\" alors qu’on ne le veut pas