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"); } }
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 ?Tu peux préciser ta pensée ?
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
Partager