Si vous êtes intéressé par ce qui se passe lorsque vous utilisez | opérateur d'alternance
, la réponse est simple :le moteur regex traite l'expression et la chaîne d'entrée de gauche à droite .
En prenant le modèle que vous avez comme exemple, ^.{8}|.{12}$|.{4} commence à inspecter la chaîne d'entrée à partir de la gauche et recherche ^.{8} - 8 premiers caractères. Les trouve et c'est un match. Ensuite, continue et trouve les 12 derniers caractères avec .{12}$ , et encore une fois il y a un match. Ensuite, toutes les chaînes de 4 caractères sont mises en correspondance.

Ensuite, vous avez ^.{8}|.{4}|.{12}$ . L'expression est à nouveau analysée de gauche à droite, les 8 premiers caractères correspondent en premier, mais ensuite, seules les séquences de 4 caractères seront mises en correspondance, .{12} ne se déclenchera jamais car il y aura .{4} matchs !
