Bonjour,
je galère avec les regex .. et je ne comprend pas où est l'erreur

Les conditions :
  • taille comprise entre 2 et 20 caractères
  • majuscule possible uniquement en début de pseudo
  • pas de caractères spéciaux sauf "-" à ne pas placer en fin de pseudo, 2max
  • 2 lettres identiques successives max



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if not pseudo:
errors.append("erreur : pseudo non renseigné")
else:
if not len(pseudo) in range(2, 20):
	if len(pseudo)<2:
		errors.append("erreur : pseudo trop court")
	elif len(pseudo)>20:
		errors.append("erreur : pseudo trop long")
if re.match("^[\a]?(-?[:lower:]+){0,2}$", pseudo):
	errors.append("erreur : pseudo invalide")
else:
	for i in range(len(pseudo)-2):
		if pseudo[i]==pseudo[i+1]==pseudo[i+2]:
			errors.append("erreur : pseudo invalide")
mais par exemple 'A-' est valide et 'a--a-a-a-a-a-a' l'est aussi ..