Forum Clubic

[REGEX] On peut le faire ?

Salut a tous :hello:

voila j4ai un ptit probleme, ca peut paraitre une question de newbie mais le probleme ne s etait jamais pose, et le grand google na rien donner :neutre:.
En faite je veux matcher les lignes qui ne contiennent PAS le mot goup ou plus exactement qui ne match pas ca:
[[:blank:]]group: (.);

alors la negation de c c’est [^c] mais d’une reg ou d’un mot entier ?

voila c vite fait pour celui qui sait :paf:
Cordialement

Oulah.

^ c’est un opérateur spécial dans les classes de caractère : ça inverses le test (en gros au lieu de faire a tu fais !a).

Tu n’as pas cet équivalent pour la regexp en entier parce que c’est un petit peu plus complexe : une regexp, c’est transformé en automate. Un automate, c’est un outil puissant mais qui peut bouffer beaucoup de place. Construire l’automate de la négation d’un mot n’est pas si dur, mais c’est typiquement le genre de truc qui va compliquer la regexp :

Pour matcher group, il faut concrêtement faire un automate :

(0) -g-> (1) -r-> (2) -o-> (3) -u-> (4) -p-> b[/b]

(en gras les états terminaux)

Normalement la négation (ie: un automate qui ne matche pas group) c’est inverser les états finaux et non finaux :

(0) -g-> (1) -r-> (2) -o-> (3) -u-> (4) -p-> b[/b]

(en gras les états non terminaux)

Doit y avoir un autre truc dans le genre tous les états sont initiaux.

Bref, pour vérifier ton truc t’as plus vite fait de rechercher si ça y est, puis de dire merde.

Peut etre que je mis prend mal aussi.
je suis en php
jai un tableau contenant plein de cases avec soit [[:blank:]]*group:le_nom_du_group; OU des autre chose qui contient pas cette forme de reg_ex: [[:blank:]]group: .;
et je veux tout les nom de group
le truc c’est que ca doit etre tres rapide enfin comprennez par la PAS du style:

for(...)
   if(ereg("[[:blank:]]*",$ligne))
      array[cpt]*=$ligne
   
:paf:  :ane: 

je sait pas trop comment faire ca de facon optimiser

Cordialement

Déjà en utilisant PCRE? tu devrais gagner en rapidité. Ensuite, ben un script php c’est lent … et je sais pas exactement ce que tu veux faire, et comme je vois limite rien…