[PHP] Expressions régulières... elle marche pas comme je veux...

Expressions régulières... elle marche pas comme je veux... [PHP] - PHP - Programmation

Marsh Posté le 09-11-2003 à 14:12:13    

NOUVEAU POST ==========


 
Comment faire uen regex qui supprime tous les caractères sauf les lettres, chiffres et ()-
 
j'ai essayé :  

$chaine=eregi_replace("^([a-z0-9\-\(\)])*","",$chaine);


mais ce ne marche pas :(
 

ANCIEN POST ===========


 
Voilà la regex :

$isolprcent=eregi_replace("(.*)([0-9]+\.[0-9]+)(.*)","\\2",$foo);


 
Ma chaine est du type :

[Fasttrack 3    ]  Daft Punk - Romanthony - Too Long.mp3                   11.1           0  9615948  0:-   -     0


Je voudrais isoler le "11.1"
mais là ça me retourne "1.1"
 
Je ne comprends pas, tout semble juste.
(je suis débutant en regex)
 
Comment faire ?
 
edit nouvelle question !


Message édité par j-'-r le 09-11-2003 à 21:41:28

---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 09-11-2003 à 14:12:13   

Reply

Marsh Posté le 09-11-2003 à 15:31:42    

Jvois pas pkoi exactement, mais un truc sur c'est que trop de caractéres sont rejeté, si tu met \\1 tu obtiens:

Code :
  1. [Fasttrack 3 ] Daft Punk - Romanthony - Too Long.mp3 1


donc le "1" est en trop déjà ...
 
Je suis un noob aussi en ereg (1er fois :) ) alors faut le temps lol ...

Reply

Marsh Posté le 09-11-2003 à 15:40:10    

Hahah:
 

Code :
  1. <?
  2. $foo = "[Fasttrack 3    ]  Daft Punk - Romanthony - Too Long.mp3                   11.1           0  9615948  0:-   -     0";
  3. $isolprcent=eregi_replace("(.* )([0-9]+\.[0-9]+)(.*)","\\2",$foo);
  4. echo $isolprcent;
  5. ?>


Aprés le (.* il fallait laisser un espace pour ne pas qu'il mange
 le premier 1 du 11.1  :whistle:  
 
 :sweat:


Message édité par letouriste le 09-11-2003 à 15:42:06
Reply

Marsh Posté le 09-11-2003 à 15:43:07    

j'ai trouvé :

ereg("([0-9]+\.[0-9]+)",$foo,$isolprcenttab);
$isolprcent=$isolprcenttab[1];


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 09-11-2003 à 15:44:00    

laquelle des deux est la plus fiable ? moins gourmande ?


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 09-11-2003 à 15:44:57    

Ben la tienne fait appel à un tableau ? donc plus lourd ...
Mais bon sa doit se jouer à rien du tout .... mon truc est plus simple je pense :)

Reply

Marsh Posté le 09-11-2003 à 21:42:09    

nvelle question dans le post principal :)
 
Comment faire uen regex qui supprime tous les caractères sauf les lettres, chiffres et ()-
 
j'ai essayé :  
 

$chaine=eregi_replace("^([a-z0-9\-\(\)])*","",$chaine);


 
mais ce ne marche pas :(


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 12-11-2003 à 19:48:08    

Voila une methode barbare mais qui marche (testé) :
 

Code :
  1. $in="[Fasttrack 3    ]  Daft Punk - Romanthony - Too Long.mp3         ()          11.1           0  9615948  0:-   -     0";
  2. $c=0;
  3. $out="";
  4. while(isset($in{$c})){
  5. if(ereg("[a-zA-Z]",$in{$c}) || ereg("[0-9]",$in{$c}) || ereg("\(",$in{$c}) || ereg("\)",$in{$c}) || ereg("-",$in{$c})){
  6.   $out.=$in{$c};
  7. }
  8. $c++;
  9. }
  10. echo "$out";

Reply

Marsh Posté le 12-11-2003 à 19:49:55    

tient en passant j'ai jamais rien compris au regxp :D
j'ai jamais pris trop le temps non plus mais bon.
Vous auriez une bonne url? :)

Reply

Marsh Posté le 12-11-2003 à 20:36:26    

http://www.expreg.com/


---------------
Perdu ? Vous êtes ici : --> *
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed