J'essaye de d=E9finir tr=E8s simplement une expression=20
r=E9guli=E8re qui me permet de v=E9rifier que la chaine pass=E9e=20
en param=E8tre ne contient que des chiffres. Voici ma=20
m=E9thode :
static public bool isChaineNumerique(string sPar_Chaine)
{
System.Text.RegularExpressions.Regex oLocal_Regex;
bool bLocal_ValeurRetour =3D false;
oLocal_Regex =3D new Regex(@"[0-9]");
if (oLocal_Regex.IsMatch(sPar_Chaine)=3D=3Dtrue)
{
bLocal_ValeurRetour =3D true;
}
return bLocal_ValeurRetour;
}
Or cela ne marche pas.=20
Si je saisi "12ab" cette m=E9thode me retourne true.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Philippot
Expression régulière wrote:
J'essaye de définir très simplement une expression régulière qui me permet de vérifier que la chaine passée en paramètre ne contient que des chiffres. Voici ma méthode :
static public bool isChaineNumerique(string sPar_Chaine) { System.Text.RegularExpressions.Regex oLocal_Regex; bool bLocal_ValeurRetour = false; oLocal_Regex = new Regex(@"[0-9]"); if (oLocal_Regex.IsMatch(sPar_Chaine)==true) { bLocal_ValeurRetour = true; }
return bLocal_ValeurRetour; }
Or cela ne marche pas. Si je saisi "12ab" cette méthode me retourne true.
D'ou vient l'erreur ?
Bonjour,
Il n'y a pas d'erreur et ça marche :-)).
Il y a bien dans votre chaîne une sous-chaîne correspondant à un digit: "1" ou "2". Si vous voulez que l'expression régulière corresponde à la totalité de la chaîne et que celle-ci ne soit composée que de digits, écrivez: "^[0-9]*$" ou plutôt "^d*$"
Quand vous écrivez "[0-9]", vous spécifiez que vous recherchez une sous-chaîne composée de 1 digit. Dans votre chaîne de test, il y a en a deux, "1" et "2".
Il va falloir relire la doc et vous former aux expressions régulières avec des outils comme Expresso par exemple (http://www.ultrapico.com/) ou Regular Expression designer (http://www.radsoftware.com.au/regexdesigner/) :-) .
Bon courage.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Expression régulière wrote:
J'essaye de définir très simplement une expression
régulière qui me permet de vérifier que la chaine passée
en paramètre ne contient que des chiffres. Voici ma
méthode :
static public bool isChaineNumerique(string sPar_Chaine)
{
System.Text.RegularExpressions.Regex oLocal_Regex;
bool bLocal_ValeurRetour = false;
oLocal_Regex = new Regex(@"[0-9]");
if (oLocal_Regex.IsMatch(sPar_Chaine)==true)
{
bLocal_ValeurRetour = true;
}
return bLocal_ValeurRetour;
}
Or cela ne marche pas.
Si je saisi "12ab" cette méthode me retourne true.
D'ou vient l'erreur ?
Bonjour,
Il n'y a pas d'erreur et ça marche :-)).
Il y a bien dans votre chaîne une sous-chaîne correspondant à un digit:
"1" ou "2". Si vous voulez que l'expression régulière corresponde à la
totalité de la chaîne et que celle-ci ne soit composée que de digits,
écrivez: "^[0-9]*$" ou plutôt "^d*$"
Quand vous écrivez "[0-9]", vous spécifiez que vous recherchez une
sous-chaîne composée de 1 digit. Dans votre chaîne de test, il y a en a
deux, "1" et "2".
Il va falloir relire la doc et vous former aux expressions régulières
avec des outils comme Expresso par exemple (http://www.ultrapico.com/)
ou Regular Expression designer
(http://www.radsoftware.com.au/regexdesigner/) :-) .
Bon courage.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
J'essaye de définir très simplement une expression régulière qui me permet de vérifier que la chaine passée en paramètre ne contient que des chiffres. Voici ma méthode :
static public bool isChaineNumerique(string sPar_Chaine) { System.Text.RegularExpressions.Regex oLocal_Regex; bool bLocal_ValeurRetour = false; oLocal_Regex = new Regex(@"[0-9]"); if (oLocal_Regex.IsMatch(sPar_Chaine)==true) { bLocal_ValeurRetour = true; }
return bLocal_ValeurRetour; }
Or cela ne marche pas. Si je saisi "12ab" cette méthode me retourne true.
D'ou vient l'erreur ?
Bonjour,
Il n'y a pas d'erreur et ça marche :-)).
Il y a bien dans votre chaîne une sous-chaîne correspondant à un digit: "1" ou "2". Si vous voulez que l'expression régulière corresponde à la totalité de la chaîne et que celle-ci ne soit composée que de digits, écrivez: "^[0-9]*$" ou plutôt "^d*$"
Quand vous écrivez "[0-9]", vous spécifiez que vous recherchez une sous-chaîne composée de 1 digit. Dans votre chaîne de test, il y a en a deux, "1" et "2".
Il va falloir relire la doc et vous former aux expressions régulières avec des outils comme Expresso par exemple (http://www.ultrapico.com/) ou Regular Expression designer (http://www.radsoftware.com.au/regexdesigner/) :-) .
Bon courage.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
J'essaye de définir très simplement une expression régulière qui me permet de vérifier que la chaine passée en paramètre ne contient que des chiffres. Voici ma méthode :
static public bool isChaineNumerique(string sPar_Chaine) { System.Text.RegularExpressions.Regex oLocal_Regex; bool bLocal_ValeurRetour = false; oLocal_Regex = new Regex(@"[0-9]"); if (oLocal_Regex.IsMatch(sPar_Chaine)==true) { bLocal_ValeurRetour = true; }
return bLocal_ValeurRetour; }
Or cela ne marche pas. Si je saisi "12ab" cette méthode me retourne true.
D'ou vient l'erreur ?
Bonjour,
Il n'y a pas d'erreur et ça marche :-)).
Il y a bien dans votre chaîne une sous-chaîne
correspondant à un digit:
"1" ou "2". Si vous voulez que l'expression régulière
corresponde à la
totalité de la chaîne et que celle-ci ne soit composée que
de digits,
écrivez: "^[0-9]*$" ou plutôt "^d*$"
Quand vous écrivez "[0-9]", vous spécifiez que vous
recherchez une
sous-chaîne composée de 1 digit. Dans votre chaîne de
test, il y a en a
deux, "1" et "2".
Il va falloir relire la doc et vous former aux expressions
régulières
avec des outils comme Expresso par exemple
(http://www.ultrapico.com/)
ou Regular Expression designer (http://www.radsoftware.com.au/regexdesigner/) :-) .
Bon courage.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
J'essaye de définir très simplement une expression
régulière qui me permet de vérifier que la chaine passée
en paramètre ne contient que des chiffres. Voici ma
méthode :
static public bool isChaineNumerique(string sPar_Chaine)
{
System.Text.RegularExpressions.Regex oLocal_Regex;
bool bLocal_ValeurRetour = false;
oLocal_Regex = new Regex(@"[0-9]");
if (oLocal_Regex.IsMatch(sPar_Chaine)==true)
{
bLocal_ValeurRetour = true;
}
return bLocal_ValeurRetour;
}
Or cela ne marche pas.
Si je saisi "12ab" cette méthode me retourne true.
D'ou vient l'erreur ?
Bonjour,
Il n'y a pas d'erreur et ça marche :-)).
Il y a bien dans votre chaîne une sous-chaîne
correspondant à un digit:
"1" ou "2". Si vous voulez que l'expression régulière
corresponde à la
totalité de la chaîne et que celle-ci ne soit composée que
de digits,
écrivez: "^[0-9]*$" ou plutôt "^d*$"
Quand vous écrivez "[0-9]", vous spécifiez que vous
recherchez une
sous-chaîne composée de 1 digit. Dans votre chaîne de
test, il y a en a
deux, "1" et "2".
Il va falloir relire la doc et vous former aux expressions
régulières
avec des outils comme Expresso par exemple
(http://www.ultrapico.com/)
ou Regular Expression designer
(http://www.radsoftware.com.au/regexdesigner/) :-) .
Bon courage.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
J'essaye de définir très simplement une expression régulière qui me permet de vérifier que la chaine passée en paramètre ne contient que des chiffres. Voici ma méthode :
static public bool isChaineNumerique(string sPar_Chaine) { System.Text.RegularExpressions.Regex oLocal_Regex; bool bLocal_ValeurRetour = false; oLocal_Regex = new Regex(@"[0-9]"); if (oLocal_Regex.IsMatch(sPar_Chaine)==true) { bLocal_ValeurRetour = true; }
return bLocal_ValeurRetour; }
Or cela ne marche pas. Si je saisi "12ab" cette méthode me retourne true.
D'ou vient l'erreur ?
Bonjour,
Il n'y a pas d'erreur et ça marche :-)).
Il y a bien dans votre chaîne une sous-chaîne
correspondant à un digit:
"1" ou "2". Si vous voulez que l'expression régulière
corresponde à la
totalité de la chaîne et que celle-ci ne soit composée que
de digits,
écrivez: "^[0-9]*$" ou plutôt "^d*$"
Quand vous écrivez "[0-9]", vous spécifiez que vous
recherchez une
sous-chaîne composée de 1 digit. Dans votre chaîne de
test, il y a en a
deux, "1" et "2".
Il va falloir relire la doc et vous former aux expressions
régulières
avec des outils comme Expresso par exemple
(http://www.ultrapico.com/)
ou Regular Expression designer (http://www.radsoftware.com.au/regexdesigner/) :-) .
Bon courage.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
.
Patrick Philippot
Stéphane ANDRE wrote:
Merci beaucoup !
De rien. Précision: si j'écris ^d*$, la chaîne vide est acceptée. Si vous voulez au moins un digit, il faut écrire ^d+$ .
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Stéphane ANDRE wrote:
Merci beaucoup !
De rien. Précision: si j'écris ^d*$, la chaîne vide est acceptée. Si
vous voulez au moins un digit, il faut écrire ^d+$ .
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr