8 votes

La capture des parenthèses doit-elle affecter une anticipation négative distincte ?

J'utilise Java. J'ai le texte suivant :

"hyst and hy"

Pourquoi (hy)( ?![a-z]) renvoie deux "hy". L'idée est de faire correspondre tout "hy" qui n'est pas suivi d'un caractère compris entre a et z.

Si je le fais hy( ?![a-z]) (hy sans parenthèses) cela fonctionne (ne trouve que le deuxième "hy") mais je ne comprends pas pourquoi si j'utilise des parenthèses (hy) dans le RegEx cela correspond au premier "hy" dans hyst

3voto

Casimir et Hippolyte Points 33449

Lorsque vous utilisez un groupe de capture, vous obtenez deux résultats, le premier étant le motif entier et le second le groupe de capture. Le premier hy n'a jamais été égalée.

Si vous supprimez les parenthèses, vous n'obtiendrez que ce qui correspond à l'ensemble du motif.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X