Page 1 sur 1
[R] besoin d'aide pour un StringRegExpReplace
Posté : mar. 09 juin 2009 23:54
par ethneldryt
Bonsoir, comme je n'ai jamais compris comment ca marche j'aurais besoin d'aide :
$test = "c:\dossier 1\dossier2\dossier 3\toto.exe
avec StringRegExpReplace j'aimerais que le resultat $result = "toto.exe".
il faudrais en partant de la droite tout surprimer a partir du "\" quel que sois la longueur de ce qu'il y a avant pour ne grader que "toto.exe"
Merci

Re: [..] besoin d'aide pour un StringRegExpReplace
Posté : mer. 10 juin 2009 00:21
par Iste
Je suis pas trop fort en regexp, donc j'utilise souvent des alternative !
Par exemple, pour ton cas je dirais :
Code : Tout sélectionner
$var = StringSplit($avant,"\")
$apres = ""
For $i = 1 To $var[0] -1
$apres &= $var[$i]&"\"
Next
$apres &= "pastoto.exe"
En fait, je découpe la variable en petit bout, et je recole comme je veux..
Re: [..] besoin d'aide pour un StringRegExpReplace
Posté : mer. 10 juin 2009 00:27
par ethneldryt
salut, je ne comprend pas ton script, du moi je n'arrive pas a le faire marcher

Re: [..] besoin d'aide pour un StringRegExpReplace
Posté : mer. 10 juin 2009 00:34
par Tlem
Voici :
Code : Tout sélectionner
MsgBox(0,"", LSP("c:\dossier 1\dossier2\dossier 3\toto.exe"))
MsgBox(0,"", LSP("c:\dossier 1\dossier2\dossier 3\toto le programme.exe"))
MsgBox(0,"", LSP("\\La machine serveur\Le dossier 1\Le dossier 2\Le Dossier 3\toto.exe"))
MsgBox(0,"", LSP("\\La machine serveur\Le dossier 1\Le dossier 2\Le Dossier 3\toto..exe"))
Func LSP($sPath)
$sLast = StringRegExpReplace($sPath, "^.*\\|\.*$", "")
Return $sLast
EndFunc
En utilisant le pattern suivant :
"^.*\\|\..*$"
Vous obtiendrez le nom sans l'extension.

Re: [..] besoin d'aide pour un StringRegExpReplace
Posté : mer. 10 juin 2009 00:39
par Iste
Code : Tout sélectionner
$avant = "c:\dossier 1\dossier2\dossier 3\toto.exe" ; $avant contient la chaine a modifier
$var = StringSplit($avant,"\") ; $var devient un array d'une découpe sur chaque "\"
;$var[0] contient le nombre d'éléments, donc ici 5
;$var[1] contient donc "c:"
;$var[2] contient "dossier 1"
;$var[3] contient "dossier 2"
;$var[4] contient "dossier 3"
;et $var[5] contient "toto.exe"
$apres = "" ; on crée une variable pour contenir la nouvelle chaine
For $i = 1 To $var[0] -1 ;on lance une boucle pour chaque bout découpé,
;moins 1 car toto.exe on en veut pas
$apres &= $var[$i]&"\" ;on ajoute a la variable le bout de chaine numéro $1, suivit d'un "\"
;Le premier coup, la variable deviendra "c:\", puis "c:\dossier 1"
;jusqu'a devenir "c:\dossier 1\dossier2\dossier 3\"
Next
$apres &= "pastoto.exe" ;on rajoute le nouveau nom de l'exe,et vala !
c'est mieux ? ^^
Edit : a zut, Tlem plus rapide

en meme temps, "^.*\\|\..*$" j'aurais jamais trouvé xD
Re: [R] besoin d'aide pour un StringRegExpReplace
Posté : mer. 10 juin 2009 00:42
par ethneldryt
merci a vous deux
