Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie der OR-Operator für reguläre Ausdrücke ausgewertet wird

Wenn Sie daran interessiert sind, was passiert, wenn Sie | verwenden Wechseloperator , ist die Antwort einfach:Die Regex-Engine verarbeitet den Ausdruck und die Eingabezeichenfolge von links nach rechts .

Nehmen wir als Beispiel das Muster, das Sie haben, ^.{8}|.{12}$|.{4} beginnt mit der Untersuchung der Eingabezeichenfolge von links und sucht nach ^.{8} - die ersten 8 Zeichen. Findet sie und es ist eine Übereinstimmung. Dann geht es weiter und findet die letzten 12 Zeichen mit .{12}$ , und wieder gibt es eine Übereinstimmung. Dann werden beliebige 4-Zeichen-Strings abgeglichen.

Debuggex-Demo

Als nächstes haben Sie ^.{8}|.{4}|.{12}$ . Der Ausdruck wird erneut von links nach rechts geparst, die ersten 8 Zeichen werden zuerst abgeglichen, aber Als nächstes werden nur 4-stellige Sequenzen abgeglichen, .{12} wird niemals ausgelöst, da .{4} vorhanden sein wird Übereinstimmungen!

Debuggex-Demo