Se sei interessato a cosa succede quando usi |
operatore di alternanza
, la risposta è semplice:il motore regex elabora l'espressione e la stringa di input da sinistra a destra .
Prendendo il modello che hai come esempio, ^.{8}|.{12}$|.{4}
inizia a controllare la stringa di input da sinistra e cerca ^.{8}
- primi 8 caratteri. Li trova ed è una partita. Quindi, continua e trova gli ultimi 12 caratteri con .{12}$
, e di nuovo c'è una corrispondenza. Quindi, qualsiasi stringa di 4 caratteri viene trovata.
Successivamente, hai ^.{8}|.{4}|.{12}$
. L'espressione viene nuovamente analizzata da sinistra a destra, i primi 8 caratteri vengono confrontati per primi, ma successivamente, verranno abbinate solo sequenze di 4 caratteri, .{12}
non si attiverà mai perché ci sarà .{4}
partite!