BBedit et GREP

L'expression régulière

^(?!((.*[\d][13579].*){5})).*([\d][13579].*){4}$

vérifie beaucoup plus de chose que ton

[012][13579] - [012][13579] - [012][13579] - [012][13579] - [012][02468] - [012][02468] - [012][02468] - [012][02468] - [012][02468] - [012][02468] - [012][02468] - [012][02468]
(qui ne fait pas le job, elle valide juste 4impairs et 8pairs dans cette ordre strictement)

Elle valide toutes les combinaisons possibles.
Donc, si je ne m'abuse, elle doit vérifier 143 (12²-1) combinaisons de plus que l'autre.
(donc ça se tient en terme de durée)


Ce n'est pas gênant, du moment que le résultat corresponds a ma demande.

Merci
 
En bref, pour l'explication (si ça t'intéresse):
- on considère la ligne entière pour ne pas valider la condition que sur une partie de la ligne (sinon on trouve des faux-positifs, par exemple "- 01 - 03 - 05 - 07 - 12 - 14 - 18 - 22 - 24 - 26 - 28 - 25 -" est valide si on ne considère que "1 - 03 - 05 - 07 - 12 - 14 - 18 - 22 - 24 - 26 - 28 - 25 -") --> (^ $)
- on rejette (?!) d'entrée de jeu les lignes ayant 5 (ou plus) nombre impairs --> n'importe quel chiffre (\d) suivi de 1,2,3,5,7 ou 9 ([13579])
- on valide ensuite les lignes ayant 4 (ou plus) nombre impairs (donc strictement 4 puisque les lignes ayant 5 ou plus ont été rejetées).
(les nombres impairs ne sont pas forcément consécutifs et peuvent être entrecoupés (surtout avec ces tirets) de n'importe quoi (.*))

C'est tout.

Chapeaux bas !
:zen::up: