Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como o operador OR de expressão regular é avaliado


Se você estiver interessado no que acontece quando você usa | operador de alternância , a resposta é fácil:o mecanismo regex processa a expressão e a string de entrada da esquerda para direita .

Tomando o padrão que você tem como exemplo, ^.{8}|.{12}$|.{4} começa a inspecionar a string de entrada da esquerda e verifica se há ^.{8} - primeiros 8 caracteres. Encontra-os e é um jogo. Em seguida, continua e encontra os últimos 12 caracteres com .{12}$ , e novamente há uma correspondência. Em seguida, quaisquer cadeias de 4 caracteres são correspondidas.



Demonstração do Debuggex

Em seguida, você tem ^.{8}|.{4}|.{12}$ . A expressão é novamente analisada da esquerda para a direita, os primeiros 8 caracteres são correspondidos primeiro, mas em seguida, apenas sequências de 4 caracteres serão correspondidas, .{12} nunca será acionado porque haverá .{4} fósforos!



Demonstração do Debuggex