Ако се интересувате какво се случва, когато използвате |
оператор за редуване
, отговорът е лесен:регулярният израз обработва израза и входния низ от ляво на надясно .
Като вземем модела, който имате като пример, ^.{8}|.{12}$|.{4}
започва да проверява входния низ отляво и проверява за ^.{8}
- първите 8 знака. Намира ги и съвпада. След това продължава и намира последните 12 знака с .{12}$
, и отново има съвпадение. След това се съпоставят всички низове от 4 знака.
След това имате ^.{8}|.{4}|.{12}$
. Изразът отново се анализира отляво надясно, първите 8 знака се съпоставят първо, но след това ще бъдат съпоставени само поредици от 4 знака, .{12}
никога няма да задейства, защото ще има .{4}
съвпадения!