Hola petite question simple,
j'aime vérifier qu'une chaîne de caractère respecte un certain format du style " S-XXX-C-XXX_xxxxxx_XXXX";
Les X étant des chiffres ou des lettres.
Merci beaucoup
Hola petite question simple,
j'aime vérifier qu'une chaîne de caractère respecte un certain format du style " S-XXX-C-XXX_xxxxxx_XXXX";
Les X étant des chiffres ou des lettres.
Merci beaucoup
Bonjour,
Quand je cherche à vérifier si une chaine respecte un certains format, je pense tout de suite à une regex.
Par contre je n'ai jamais su les générer tout seul (il faut vraiment que je m'y mette), mais il existe des sites tout fait pour ça, par exemple celui-ci (le premier que j'ai trouvé, il y en a d'autres).
Tatayo.
Salut,
en effet j'ai déjà fait le regex qui vérifie par exemple s'il y le S- puis un autre qui vérifie s'il y'a le -C- mais j'aimerai quelque chose de plus optimisé et qui remplisse mes conditions...
Le Regex et les expressions régulières vont t'y aider :
https://docs.microsoft.com/fr-fr/dot...tframework-4.8
Je pensais me servir de ça
ou bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 S-[\d]{3}-C-[\d]{3}_[a-zA-Z]_[\d]{3}
j'ai aucune idée de comment gérer ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 S-[\d]{3}-C-[\d]{3}_[\w]_[\d]{3}
Précise ce que tu veux faire exactement comme contrôle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 class Program { static void Main(string[] args) { //string test = "S-XXX-C-XXX_xxxxxx_XXXX"; string test = "S-12f-C-2E3_xxxxxx_a00X"; string pattern = @"\AS-\w{3}-C-\w{3}_x{6}_\w{4}\z"; Regex rgx = new Regex(pattern); Match m = rgx.Match(test); Console.WriteLine(m.Value); } }
Pardon , déjà merci pour la réponse.
Je souhaitais vérifié que le format du nom de fichier ai le même pattern que celui du pattern sinon je supprime le fichier
Ça marche du coup donc merci voilà la solution cependant :
La je précise le nombre d'argument que j'attend, serait-t'il possible de juste préciser que j'attend quelque chose sans forcément un nombre défini ou alors est il possible de limiter ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 private static void Main(string[] args) { var test = "S-458-C-236_4xd_598"; var pattern = @"S-[\d]{3}-C-[\d]{3}_[\w]{3}_[\d]{3}"; var rgx = new Regex(pattern); var m = rgx.Match(test); if (m.Success) { Console.WriteLine("SUCCESS PATTERN FOR " + m.Value); } else { Console.WriteLine("ERROR PATTERN"); } }
Tu peux préciser ta pensée ?La je précise le nombre d'argument que j'attend, serait-t'il possible de juste préciser que j'attend quelque chose sans forcément un nombre défini ou alors est il possible de limiter ?
Oui de suite
Voilà un exemple de nom de fichier:
S-459-C-785_TestAluminium_568
S-459-C-785_TestCarbone_568
Le texte entre les deux "_" n'ont pas tout les deux le même nombre de caractères. Or les deux ont le bon format.
Je veux que ces espaces de texte entre les underscores soient libres et donc flexible.s
Ici :
Le "_[\w]{3}_" oblige seulement trois caractères. J'aimerai avoir une indication de comment devenir flexible sur l'élément "_[\w]_".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2"S-[\d]{3}-C-[\d]{3}_[\w]{3}_[\d]{3}"
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 "S-[\d]{3}-C-[\d]{3}_[\w]{n}_[\d]{3}" // ou "S-[\d]{3}-C-[\d]{3}_[\w]_[\d]{3}" // Sauf que ces deux solutions ne marchent pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part string pattern = @"\AS-\d{3}-C-\d{3}_\w+_\d{3}\z";
Attention car \w+ correspond a [a-zA-Z0-9_]+ (lettre, nombre, underscore). S'il ne faut accepter que des lettres et uniquement des lettres, alors il vaut mieux etre explicite avec [a-zA-Z]+.
Less Is More
Pensez à utiliser les boutons , et les balises code
Desole pour l'absence d'accents, clavier US oblige
Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.
Ok merci à tous c'est bon.
Je close le poste
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager