Rahhh, elle m'a donné du fil à retordre cette RegEx pour trouver un
full,
pourtant c'était simple

il suffisait d'utiliser les références arrières.
La référence arrière reprend le groupe précédent trouvé ()
Elle s'écrit \1 \2 \3 et car elle est dans l'expression elle-même
contrairement aux $1 $2 $3 etc qui s'utilisent en dehors de l'expression.
Donc pour le jeu de dés
([0-6])\1\1([0-6])\2
En clair (pour les lecteurs qui n'ont jamais fait d'expression régulière)
[0-6] = 1 chiffre entre 0 et 6
([0-6]) = conserver ce résultat
\1 = le résultat trouvé avant
\1\1 = utiliser le résultat 2 fois de suite (donc 3 avec le début)
puis ensuite on recommence
mais la référence arrière devient le résultat du deuxième groupe de parenthèses
(je sais pas si je m'explique bien

)
Ça c'est si tu veux juste la version 3 puis 2
Code : Tout sélectionner
If CreateRegularExpression(0, "([0-6])\1\1([0-6])\2")
Debug MatchRegularExpression(0, "133355")
Else
Debug RegularExpressionError()
EndIf
Si tu veux traiter 3 puis 2 ou 2 puis 3
([0-6])\1\1([0-6])\2|([0-6])\3([0-6])\4\4
Là c'est pareil, sauf qu'on traite les deux cas avec un ou |
et on utilise les groupes 3 et 4
Le problème est que cette expr prend aussi un
carré, donc le plus simple est de la faire précéder par une autre qui recherche ce
carré
([0-6])\1\1\1
De plus, comme les RegEx ne font pas la différence entre chiffre ou lettre si on utilisait des cartes et non pas des dés on peut inclure les figures
[0-9VDR] (0 remplaçant 10) ou alors prendre les codes officiels [A1-9TVJDQRK]
