Jeśli interesuje Cię, co się stanie, gdy użyjesz |
operator alternatywny
, odpowiedź jest prosta:silnik regex przetwarza wyrażenie i ciąg wejściowy z lewej do w prawo .
Biorąc za przykład wzór, ^.{8}|.{12}$|.{4}
zaczyna sprawdzać ciąg wejściowy od lewej i sprawdza, czy jest ^.{8}
- pierwsze 8 znaków. Znajduje je i to pasuje. Następnie przechodzi dalej i znajduje ostatnie 12 znaków za pomocą .{12}$
i znowu jest mecz. Następnie dopasowywane są dowolne 4-znakowe ciągi.
Następnie masz ^.{8}|.{4}|.{12}$
. Wyrażenie jest ponownie analizowane od lewej do prawej, najpierw dopasowywanych jest 8 pierwszych znaków, ale następnie dopasowane zostaną tylko 4-znakowe sekwencje, .{12}
nigdy się nie uruchomi, ponieważ będzie .{4}
mecze!