Ereg_replace [php]

bensezoug Messages postés 29 Statut Membre -  
kilian Messages postés 8854 Statut Modérateur -
J'ai besoin d'un petit coup de main pour une expression reguliere.

c'est pour supprimer dans une ligne des nombres qui sont entre parenthere et les parentheses avec.
Mais j'arrive pas a m'en sortir vu que les parentheses sont deja des caracteres de controle pour les regexp.
j'ai bien essayé un backslash pour echapper la parenthese mais ca me fait des erreurs.
A voir également:

10 réponses

maily Messages postés 7560 Statut Contributeur 453
 
Bonjour!

pourrais tu mettre la regexp que tu as déjà silteplé et un exemple?
:)
0
bensezoug Messages postés 29 Statut Membre 3
 
voila la chaine a traiter:

RX bytes:1347822817 (1285.3 Mb) TX bytes:867992285 (827.7 Mb)

je veux virer les deux valeures entre parentheses.

j'ai essayer le masque suivant
"\((.*)\)"qui me donne l'erreur:
Warning: Delimiter must not be alphanumeric or backslash in /var/www/localhost/htdocs/cacti/scripts/wan_bytes.php on line 27
0
maily Messages postés 7560 Statut Contributeur 453
 
et ça?

(\(.*\))
0
bensezoug Messages postés 29 Statut Membre 3
 
alors ya du mieux mais la il me donne que ca:
RX bytes:1356305902
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maily Messages postés 7560 Statut Contributeur 453
 
ah oui!
Le problème vient du fait qu'il y ait deux groupes de parenthèses... celles du milieu sont comptées dans le .*... Il faut que tu fasses .* moins les parenthèses.
Par contre, je ne connais plus la syntaxe!
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Salut,

Essaie celle-ci, ça marche chez moi:
\([0-9]+\.?[0-9]?[[:space:]]{1}((Mb)|(Gb)|(Kb))\)

Mais ça ne marchera que si ça suit cet ordre:
Parnthèse ouverte, au moins un chiffre, un point ou pas,un chiffre ou pas, un espace et Mb ou Gb ou Kb

Comme ça ça marchera aussi pour des résultats sans chiffre après la virgule...Et ça marchera aussi pour d'autres mesures....
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Ou encore ce que suggérait Maily:
\([^)]*\)


En gros: Parenthèses ouvertes, tout ce qui n'est pas une parenthèse fermée, parenthèse fermée...

(Ca marche aussi. C'est moins personnalisé et ça zappera toute parenthèses tant qu'elle ne contiendra pas elle même une parenthèse fermée.... (Donc éviter les parenthèses dans les parenthèses....)....)
0
bensezoug Messages postés 29 Statut Membre 3
 
la plis longu fonctionne bien, la derniere a une erreur.
merci :-)
0
maily Messages postés 7560 Statut Contributeur 453
 
Normal, il manque une parenthèse:

(\([^)(]*\))
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Ah? Chez moi ça marche sans besoin de rajouter des parenthèses....
0