sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo se evalúa el operador OR de expresión regular

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.

Demostración de Debuggex

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!

Demostración de Debuggex