Je connais très peu de choses sur regex.
J'essaie de tester une validation de mot de passe.Est-ce que cette expression regex autorise "*"?
est ici l'expression rationnelle qui décrit (je n'ai pas écrit, et ne sais pas ce que cela signifie):
private static string passwordField = "[^A-Za-z0-9_.\\[email protected]#$%^&*()=+;:'\"|~`<>?\\/{}]";
J'ai essayé un mot de passe comme « dfgbrk*
», et mon code, en utilisant le regex ci-dessus, l'a permis.
Est-ce cohérent avec ce que la regex définit comme acceptable, ou est-ce un problème avec mon code?
Pouvez-vous me donner un exemple d'une chaîne que la validation en utilisant l'expression régulière ci-dessus n'est pas censée autoriser?
Ajouté: Voici comment le code d'origine utilise cette expression rationnelle (et il y travaille):
public static bool ValidateTextExp(string regexp, string sText)
{
if (sText == null)
{
Log.WriteWarning("ValidateTextExp got null text to validate against regExp {0} . returning false",regexp);
return false;
}
return (!Regex.IsMatch(sText, regexp));
}
Il semble que je fais quelque chose de mal ..
Merci.
Indiquez le reste de votre code. Il serait utile de voir comment l'expression régulière est utilisée. –
Cette regex inclut une négation de la classe de caractères (commence par '[^') donc il ne devrait pas correspondre à votre exemple 'dfgbrk *'. Pouvez-vous montrer un peu de code qui utilise réellement cette chaîne 'passwordField'? –
Pourquoi voulez-vous interdire certains caractères dans un mot de passe? – CodesInChaos