hi CosmoKnacki,
le look ahead n'est pas n�cessaire : ) (puisque c'est de toute facon ce qu'on veut capturer...)
edit:
Code:
1
2 txt = txt.replace(/(?<!\S)([2-9]\d*|1\d+)(?!\S)/g, m => m*8);
Version imprimable
hi CosmoKnacki,
le look ahead n'est pas n�cessaire : ) (puisque c'est de toute facon ce qu'on veut capturer...)
edit:
Code:
1
2 txt = txt.replace(/(?<!\S)([2-9]\d*|1\d+)(?!\S)/g, m => m*8);
@galerien69
Le r�le du lookahead (?!\S) est de contr�ler que le nombre n'est pas suivi par autre chose qu'un caract�re blanc ou la fin de la cha�ne. De plus, comme celui-ci n'est qu'un test qui ne consomme pas de caract�res, cela permet des matches successifs, par exemple avec la cha�ne "12 24 13 46" et la pattern (?:^|\s)([2-9]\d*|1\d+)(?:\s|$) je n'obtiendrai qu'un nombre sur deux (puisque les espaces ne peuvent �tre consomm�s deux fois).
Si maintenant tu voulais parler du groupe non-capturant (?:...), son int�r�t est justement de grouper sans g�n�rer de capture.
@NoSmoking
C'est gentil, mais tu sais il y en � d'autres sur ce forum, et quant � ceux qui ont des doutes sur le sujet, ils ne se d�brouillent pas si mal en fin de compte.Citation:
devine � qui je pensais
je parle pas du negative lookahead mais bien dulook aheadnon capturing group (dont j'ai copi� le code dans l'edit de mon dernier post)
je le recopie colle:
et vu que le matching correspond ici auCode:
1
2
3
4
5 > txt="12 24 13 46" '12 24 13 46' > txt = txt.replace(/(?<!\S)([2-9]\d*|1\d+)(?!\S)/g, m => m*8); '96 192 104 368'
lookhead (?: )groupe captur� , ben on peut se priver du (?: ) et simplement capturer
Oui, on peut et �a ne change pas le r�sultat. Mais un des int�r�ts du groupe non capturant, c'est d'�viter le co�t d'une capture (stockage d'une partie du match en plus du match). Utiliser une capture n'a de sens que lorsqu'on � besoin d'agir ou d'extraire une partie du match. En fait tu devrais te poser la question dans l'autre sens: ai-je besoin de capturer?
Hello,
c'est ici le salon o� on se r�unit pour discuter autour d'un string ? :langue2:
Vous buvez quoi ? caf� ? th� ? bi�re ? cognac ? * :chin:
* A boire avec mod�ration...
(avec "mod�rateur", �a marche aussi ou pas ?) :whistle:
oui (je suis d'accord)Citation:
En fait tu devrais te poser la question dans l'autre sens: ai-je besoin de capturer?
en fait j'ai fait l'amalgame (comme le sugg�re mes barr�s) entre non capturing et lookahead et comme un lookahead ne fail pas forc�ment la regex (vu qu'il consomme pas et que faut potentiellement attendre apres) le premier r�flexe �tait de ne pas faire un lookahead. sauf que c'�tait pas un lookahead mais un groupe non capturant :aie::aie:
Pour moi ce sera un AquaRosa glac� avec un assortiment de mignardises bio.