C# - Expression Régulière [Résolu]

Signaler
Messages postés
29
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
5 décembre 2009
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
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

Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
56
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)
Messages postés
29
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
5 décembre 2009
1
Merci ça fonctionne
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

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...
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
45
Et si une string vide n'est pas valide, tu peux mettre ceci:
"^[a-zA-Z0-9\s]+$"

<hr />
-Blog-
-Site Perso-
Messages postés
14
Date d'inscription
dimanche 11 mai 2003
Statut
Membre
Dernière intervention
30 avril 2012

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
Messages postés
14
Date d'inscription
dimanche 11 mai 2003
Statut
Membre
Dernière intervention
30 avril 2012

Trouvé : \\s
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
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é. -