[PHP - REGEX] J'ai du mal avec les expressions regulières...

J'ai du mal avec les expressions regulières... [PHP - REGEX] - PHP - Programmation

Marsh Posté le 26-08-2003 à 18:33:32    

Je comprends pas, je me suis bcp documenté, j'arrive en faire certaines mais d'autres (qui me parraissent pourtant simples) m'echappent ...
 
Ce que je voudrais faire, c'est recupperer l'extension d'un fichier...
 
Exemple :
 

Code :
  1. $nomfichier = "Voici.le.nom.de.fichier"


 
Dans ce cas l'extension est "fichier" (en fait il faut simplement recupperer tout ce qui est derriere le dernier point)
 
Donc voici le code que j'ai écris :
 

Code :
  1. $ext = eregi_replace("\.([a-zA-Z0-9]+)$","\\1",$nomfichier);


 
Mais ça ne marche pas ... où me suis je donc trompé ?
 
Merci bcp par avance.
 
++


Message édité par Dj YeLL le 26-08-2003 à 18:34:23
Reply

Marsh Posté le 26-08-2003 à 18:33:32   

Reply

Marsh Posté le 26-08-2003 à 18:41:51    

Dj YeLL a écrit :


Code :
  1. $ext = eregi_replace("\.([a-zA-Z0-9]+)$","\\1",$nomfichier);




 
Le schème, c'est: tout ce qui n'est pas un point après un point.
 
Je dirais un truc du genre:
(edit: après corrections des conneries d'usage...)

Code :
  1. if ( eregi("\.([^\.]+)$", $nomfichier, $regs) )
  2.    $ext = $regs[1];
  3. ...


Message édité par ACut le 26-08-2003 à 19:15:10
Reply

Marsh Posté le 26-08-2003 à 18:43:41    

Le commutateur d'exclusion est ^
 
Merci, je vais tester ....
 
++

Reply

Marsh Posté le 26-08-2003 à 18:58:36    

...au fait, je comprends pas ton eregi_replace ?!?
 
On est plutôt dans un eregi tout court, non?

Code :
  1. $isok = eregi("\.([^\.]+)$", $nomfichier, $regs);
  2. if ($isok) $suffixe=$regs[1];
  3. ...


 
(désolé j'ai pas PHP je peux rien tester et mon code est tout pourri improvisé...)


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
Reply

Marsh Posté le 26-08-2003 à 19:09:37    

En fait il faudrait que je me documente un peu plus sur les differente fonction ... ereg, ereg_replace etc... parceque je crois que j'ai du mal à saisir leur signification exacte...
 
Bon ta 1ere methode ne marchait pas, mais la 2nde fonctionne tres bien :)
 
Merci bcp ^^
 
Sur ce, je vais me documenter pour assouvir ma soif de connaissance en REGEX :p
 
++

Reply

Marsh Posté le 26-08-2003 à 21:29:58    

j'ai beau adoré les regexs, en php c'est quand même pas top, perso dans ton  cas je ferais un split sur le point et je prendrais le dernier element du tableau retourné!

Reply

Marsh Posté le 26-08-2003 à 21:51:58    

Anapajari a écrit :

j'ai beau adoré les regexs, en php c'est quand même pas top


gni? sachant que php accepte les regexp posix et 95% des regexp PERL, je vois pas ce qu'il te faut de plus.
 
Par contre, s'en servir à tout bout de champ, c'est clair que ce n'est pas optimal, mais comme partout.

Reply

Marsh Posté le 26-08-2003 à 22:15:32    

ce que je reproche c'est les temps d'execution d'un preg_* par rapport aux fonctions str* de php.
Morale de l'histoire j'ai tendance à eviter...

Reply

Sujets relatifs:

Leave a Replay

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