Lookbehind négative est le meilleur ajustement pour cela.
[A-GZ]{2}(?<!GB)(?<!ZZ)
Explication:
[A-GZ]{2}
correspond exactement à deux personnages, qui doivent tous deux être A-G ou Z.
(?<!GB)
correspond uniquement si les deux précédents caractères correspondants ne sont pas Go.
(?<!ZZ)
correspond uniquement si les deux caractères précédents correspondants n'étaient pas ZZ. Le lookbehind négatif, comme toutes les opérations lookahead et lookbehind, est de largeur nulle, ce qui signifie qu'il ne change pas la position du curseur. C'est pourquoi vous pouvez enchaîner deux fois de suite comme je l'ai fait. J'aime mieux que |, car cela permet de clarifier les deux cas qui ne sont pas autorisés. Et le faire deux fois devrait avoir à peu près le même effet d'exécution que le | opérateur dans un seul lookbehind.
Quelle bibliothèque d'expressions régulières utilisez-vous? –