Page 1 sur 1

Demande de regex

Posté : 23 juin 2008, 23:07
par TiTuB
Bien le bonjour,

Voilà mon petit soucis.
J'ai fais un script php qui parcours une arborescence et qui l'affiche (comme l'autoindex de apache).
Je me retrouve avec la chaine suivant (exemple) : c:/tagada/tibidi/shluguvuk

Quel serait le masque à lui appliquer pour supprimer le dernier dossier et obtenir : c:/tagada/tibidi ?
Donc virer cette partie : c:/tagada/tibidi/shluguvuk

J'ai tenté une dizaine de trucs avec preg_replace, mais ou ca supprime rien, ou ca supprime tout...

Actuellement, j'ai cà, et ca marche pas :/^.*[^/].*$/

Merci d'avance...

Posté : 23 juin 2008, 23:15
par Ryle
C'est vrai que c'est toujours plaisant de jouer avec des expressions régulières,
mais des fois c'est bien aussi de gagner du temps ;)

:arrow: dirname()

Posté : 23 juin 2008, 23:30
par TiTuB
Tu m'ôte une épine du pied. Ca marche nickel. Je te remercie :D

Posté : 23 juin 2008, 23:30
par mcorgnet
C'est vrai que c'est toujours plaisant de jouer avec des expressions régulières,
mais des fois c'est bien aussi de gagner du temps ;)

:arrow: dirname()
Cela dit, je cherchais une expression régulière qui permettait de valider un path sous windows ainsi que sous unix ...

si quelqu'un a une solution, je suis preneur.

Posté : 24 juin 2008, 00:51
par Sékiltoyai
Les deux en même temps ou bien par 2 expressions régulières ?

Posté : 24 juin 2008, 01:45
par sadeq
L'expression régulière serait : #/[^/]*$#
C'est à dire tous ce qui se termine par / suivi de plusieurs caractères sans /

Exemple :
<?php

$texte = "c:/tagada/tibidi/shluguvuk";

echo preg_replace('#/[^/]*$#', '', $texte);

?>
Affiche : c:/tagada/tibidi