C# - Expression Régulière

Résolu
skyline86 Messages postés 29 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 5 décembre 2009 - 28 janv. 2009 à 14:15
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 2 mai 2012 à 14:38
Bonjour,

Je cherche à faire une expression régulière qui permet de vérifier que l'utilisateur insère uniquement [A-Z] et [0-9] avec en plus des espaces si possible.

Donc voici ce que je fais :

Regex monExpression = new Regex("^[a-zA-Z0-9]*$");

donc je peux effectivement inscrire que des lettres de A à Z et que des chiffres de 0 à 9 mais dès que je met un espace ne fonctionne pas.

Donc comment faire ???

Merci d'avance pour vos réponses.

Cordialement

7 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
28 janv. 2009 à 14:38
Hello,

L'espace dans les regex  se met \s, donc essaie avec :
"^[a-zA-Z0-9\s]*$"

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
3
skyline86 Messages postés 29 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 5 décembre 2009 1
28 janv. 2009 à 14:48
Merci ça fonctionne
0
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
28 janv. 2009 à 15:35
Si tu veux faire des regex, tu peux aussi t'aider de l'outils Expresso http://www.ultrapico.com/Expresso.htm
Il te permettra de concevoir et débogger tes regex...
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
28 janv. 2009 à 18:56
Et si une string vide n'est pas valide, tu peux mettre ceci:
"^[a-zA-Z0-9\s]+$"

<hr />
-Blog-
-Site Perso-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cylp Messages postés 14 Date d'inscription dimanche 11 mai 2003 Statut Membre Dernière intervention 30 avril 2012
26 avril 2012 à 19:49
Bonjour tout le monde,

Ben moi, j'ai une erreur sur le \s dans cette expression : Séquence d'échappement non reconnue ???

Quelqu'un a-t'il une idée ?

D'avance merci
0
cylp Messages postés 14 Date d'inscription dimanche 11 mai 2003 Statut Membre Dernière intervention 30 avril 2012
30 avril 2012 à 12:11
Trouvé : \\s
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 50
2 mai 2012 à 14:38
Deux petites choses :
tout d'abord, \s correspond à n'importe quel caractère d'espacement (espace, tabulation, retour à la ligne...). Si tu n'accepte que les espaces, tu remplaces tout simple \s par un espace.

Ensuite, concernant ton problème avec "Séquence d'échappement non reconnue", ça vient du fait que \ correspond à un caractère spécial d'un string C#. Donc pour qu'il soit considéré comme le caractère \,
il faut effectivement le doubler
OU (et selon moi, c'est plus indiqué dans des expressions régulières)
il faut précéder ton string de @.
string pattern = @"^[a-zA-Z0-9\s]+$";


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0