Om du är intresserad av vad som händer när du använder |
alterneringsoperatör
, svaret är enkelt:regex-motorn bearbetar uttrycket och inmatningssträngen från vänster till höger .
Med mönstret du har som exempel, ^.{8}|.{12}$|.{4}
börjar inspektera inmatningssträngen från vänster och letar efter ^.{8}
- första 8 tecknen. Hittar dem och det är en match. Fortsätter sedan och hittar de sista 12 tecknen med .{12}$
, och återigen finns det en matchning. Sedan matchas alla strängar med fyra tecken.
Därefter har du ^.{8}|.{4}|.{12}$
. Uttrycket tolkas igen från vänster till höger, de första 8 tecknen matchas först, men därefter kommer endast sekvenser med fyra tecken att matchas, .{12}
kommer aldrig att avfyras eftersom det kommer att finnas .{4}
matchar!