RIEN

Signaler
Messages postés
22
Date d'inscription
dimanche 24 juillet 2005
Statut
Membre
Dernière intervention
3 août 2009
-
emmatopiak
Messages postés
149
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
17 mai 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42693-rien

emmatopiak
Messages postés
149
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
17 mai 2007
1
En fait, ce qui est couteux dans les expressions regulieres c'est deux trucs:
1) les operateurs gloutons
2) le non determinisme
Quand ces deux trucs la sont mixes il faut que le moteur d'expressions regulieres fasse du backtracking et la ca va ramer a mort.
Donc un exemple :
_ si ma chaine est "hello world" et que je la matche avec /hello.*world/
le .* etant gourmand, il va d'abord essayer de tout manger
.* va donc remplacer _world, puis ca va planter ca la chaine vide ne matche pas world
puis .* va remplacer _worl, puis replanter car d ne matche pas world
puis .* va remplacer _wor, etc. Jusqu'a finalement avoir .* qui remplace _ et world qui matche world
Et tout va bien
Donc moi je ne veux pas autoriser ces faineantises de .*
- il faudra taper /hello +world/ ou quelque chose du genre. C'est moins general mais ca ne ramera pas
=
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
Il a parfaitement raison ton prof et pas seulement pour flex, c'est le principe même des expressions régulières qui produit du lourd et lent. Quand on sait ce qu'on veut, inutile de mettre cette mécanique en route alors qu'un code ciblé sera nettement plus concis et optimisé.
emmatopiak
Messages postés
149
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
17 mai 2007
1
ah d'accord.
acx01b
Messages postés
280
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
8 juillet 2014
3
j'aime bien ponctuer avec un nombre de ?? variable

je te demande ça car mon prof m'a dit l'autre jour que flex sur des expressions très simples (genre séparation mots, nombres entiers, nombres flottants) produisait un code vraiment beaucoup trop long et lent
emmatopiak
Messages postés
149
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
17 mai 2007
1
Puis tu sais avec un seul "? " ca suffit pour poser une question:p