J'essaie de créer un filtre anti-spam utilisant des expressions régulières qui correspondent à la situation suivante.
- Il y a un groupe d'exactement 8 caractères alphanumériques à faire correspondre.
- Il doit contenir 2 lettres majuscules ou plus ;
- ET il doit contenir 2 lettres minuscules ou plus ;
- ET il doit contenir un ou plusieurs chiffres.
Jusqu'à présent, tout ce que j'ai pu trouver, c'est ça :
(?i)[A-Za-z0-9]{8}
Mon code fait correspondre un groupe de 8 majuscules et minuscules, mais il ne force pas les majuscules ou les minuscules et ne précise pas combien de fois chaque type doit apparaître. Je le couple donc avec d'autres éléments indispensables qui sont toujours présents dans les messages en question.
Voici un échantillon du modèle que j'essaie de détecter :
WbNDSk9e
C'est une partie d'une URL de spam. Les autres groupes que j'ai vus suivent le même schéma : au moins 2 lettres UC et LC et 1 ou plusieurs chiffres, et toujours exactement 8 caractères. Je n'ai pas encore vu d'autres caractères ou variations.
À ma connaissance, le seul interrupteur que je peux utiliser est celui qui permet d'activer la sensibilité à la casse, avec (?i). Certains des autres commutateurs que j'ai vus dans certaines réponses ne fonctionnent pas dans le programme que j'utilise. Est-ce que j'en demande trop à une règle RegExpr d'une seule ligne ?
J'utilise actuellement RegEx Match pour tester mes règles et mon programme anti-spam utilise le même moteur.