Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Modalità di valutazione dell'operatore OR dell'espressione regolare

Se sei interessato a cosa succede quando usi | operatore di alternanza , la risposta è semplice:il motore regex elabora l'espressione e la stringa di input da sinistra a destra .

Prendendo il modello che hai come esempio, ^.{8}|.{12}$|.{4} inizia a controllare la stringa di input da sinistra e cerca ^.{8} - primi 8 caratteri. Li trova ed è una partita. Quindi, continua e trova gli ultimi 12 caratteri con .{12}$ , e di nuovo c'è una corrispondenza. Quindi, qualsiasi stringa di 4 caratteri viene trovata.

Debuggex Demo

Successivamente, hai ^.{8}|.{4}|.{12}$ . L'espressione viene nuovamente analizzata da sinistra a destra, i primi 8 caratteri vengono confrontati per primi, ma successivamente, verranno abbinate solo sequenze di 4 caratteri, .{12} non si attiverà mai perché ci sarà .{4} partite!

Debuggex Demo