Question [Résolu]Aide sur une expression régulière

Plus d'informations
il y a 15 ans 3 mois #8710 par de França
Bonjour à tous,

Comme dit dans le titre je demande votre aide pour une expression régulière.

Dans mon script je laisse le choix à l'utilisateur d'enregistrer un fichier au chemin qu'il souhaite. Donc ça signifie qu'il va entrer lui même le chemin sur lequel il faut enregistrer son fichier.

[code:1]Ex.:
Entrer un chemin: C:\test\dosier(test)\
Fichier enregistré
Entrer un chemin: mondossier|234
Erreur[/code:1]

Il faut donc qu'il entre le chemin de la même manière que dans le première exemple.

Actuellement j'ai fais cela:
[code:1]\"^[A-Z]\:\\[\w*]\\*\"[/code:1]

Ce qui oblige déjà l'utilisateur à entrer une lettre de lecteur suivit de :\ et ensuite des chaines avec des backslash.

J'aimerais encore exclure les paramètres interdit dans les noms de fichier, càd:
\ / : * ? \" < > |

Le problème est que le slash et le backslash doivent être autorisé dans le chemin mais pas dans les noms de fichier ou de dossier.

C'est la que j'ai besoin de vous. J'éspère avoir bien commencé avec mon expression régulière.

Merci d'avance ;)

Message édité par: unfam0us, à: 3/02/11 10:30<br><br>Message édité par: unfam0us, à: 3/02/11 14:07

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8712 par Jacques Barathon
Il existe sans doute (à coup sûr même :)) une expression régulière qui fera ce que tu veux, mais il va te falloir prendre beaucoup de cas particuliers en considération (UNC, caractères autorisés/interdits dans les noms de fichiers et de répertoires, longueur maximale autorisée, noms de disques enregistrés avec new-psdrive, etc).

Le plus simple serait d'utiliser la commande toute faite de PowerShell :

[code:1]
if (-not (test-path $chemin -isvalid))
{
\&quot;chemin incorrect\&quot;
}
else
{
# ... enregistrer le fichier
}
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8713 par de França
Merci janel pour ta réponse si rapide comme d'habitude :)

Je ne connaissais pas cette commande et je me suis directement lancé dans les regex. Maintenant ça fonctionne.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.033 secondes
Propulsé par Kunena