Si está interesado en lo que sucede cuando usa |
operador de alternancia
, la respuesta es fácil:el motor de expresiones regulares procesa la expresión y la cadena de entrada desde la izquierda a derecha .
Tomando el patrón que tienes como ejemplo, ^.{8}|.{12}$|.{4}
comienza a inspeccionar la cadena de entrada desde la izquierda y busca ^.{8}
- primeros 8 caracteres. Los encuentra y es una coincidencia. Luego, continúa y encuentra los últimos 12 caracteres con .{12}$
, y de nuevo hay una coincidencia. Luego, cualquier cadena de 4 caracteres coincide.
A continuación, tiene ^.{8}|.{4}|.{12}$
. La expresión se analiza nuevamente de izquierda a derecha, los primeros 8 caracteres coinciden primero, pero a continuación, solo coincidirán las secuencias de 4 caracteres, .{12}
nunca disparará porque habrá .{4}
¡coincidencias!