jackie0000
Messages postés22Date d'inscriptiondimanche 24 juillet 2005StatutMembreDernière intervention 3 août 2009
-
14 mai 2007 à 13:16
emmatopiak
Messages postés149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 2007
-
14 mai 2007 à 22:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
emmatopiak
Messages postés149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 14 mai 2007 à 22:34
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és21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 14 mai 2007 à 22:11
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és149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 14 mai 2007 à 22:06
ah d'accord.
acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 8 juillet 20146 14 mai 2007 à 20:34
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és149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 14 mai 2007 à 18:11
Puis tu sais avec un seul "? " ca suffit pour poser une question:p
emmatopiak
Messages postés149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 14 mai 2007 à 16:24
Ah lol, non juste pour m'amuser :p
Puis y'a pas de competition entre moi et des librairies faites par 40 personnes travaillant pendant 3 ans, que j'ai respect, mais je suis d'avis qu'il faut savoir programmer tout ce qu'on utilise, sinon on devient des utilisateurs et pas des informaticiens.. NON?
acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 8 juillet 20146 14 mai 2007 à 16:20
salut juste pour savoir tu cherches à faire du meilleure code que flex sur ces expressions régulières ???
(il ne te convient pas ?)
ou c'est juste pour t'amuser ??
emmatopiak
Messages postés149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 14 mai 2007 à 13:39
Merci bcp de tes encouragements :p je ne gere pas tout encore mais ca viendra bien a un moment ou a un autre, je trouve ca pratique d'avoir une librairie pour les expressions regulieres car ca servirait pour le bot que je suis en train de faire en C aussi.
Donc j'essaye d'avancer un peu sur ces projets en parallele, avec d'autres codes en route :p
Ca avancera au fur et a mesure en tout cas.
aymane_farissi
Messages postés1Date d'inscriptionvendredi 11 février 2005StatutMembreDernière intervention20 octobre 2007 14 mai 2007 à 13:38
bon courage
j'ai jamais envoyer un message, c'est juste pr test.
jackie0000
Messages postés22Date d'inscriptiondimanche 24 juillet 2005StatutMembreDernière intervention 3 août 2009 14 mai 2007 à 13:16
ben j ai hate de voir le reste surtout que c es pas base sur automath.h
tu cree la une autre libraierie. beau travail.
14 mai 2007 à 22:34
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
=
14 mai 2007 à 22:11
14 mai 2007 à 22:06
14 mai 2007 à 20:34
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
14 mai 2007 à 18:11
14 mai 2007 à 16:24
Puis y'a pas de competition entre moi et des librairies faites par 40 personnes travaillant pendant 3 ans, que j'ai respect, mais je suis d'avis qu'il faut savoir programmer tout ce qu'on utilise, sinon on devient des utilisateurs et pas des informaticiens.. NON?
14 mai 2007 à 16:20
(il ne te convient pas ?)
ou c'est juste pour t'amuser ??
14 mai 2007 à 13:39
Donc j'essaye d'avancer un peu sur ces projets en parallele, avec d'autres codes en route :p
Ca avancera au fur et a mesure en tout cas.
14 mai 2007 à 13:38
j'ai jamais envoyer un message, c'est juste pr test.
14 mai 2007 à 13:16
tu cree la une autre libraierie. beau travail.