sql >> Database >  >> RDS >> Sqlserver

Hoe de OR-operator voor reguliere expressies wordt geëvalueerd

Als je geïnteresseerd bent in wat er gebeurt als je | gebruikt wisseloperator , het antwoord is eenvoudig:de regex-engine verwerkt de uitdrukking en de invoertekenreeks van links naar rechts .

Neem het patroon dat u als voorbeeld heeft, ^.{8}|.{12}$|.{4} begint de invoerreeks van links te inspecteren en controleert op ^.{8} - eerste 8 tekens. Vindt ze en het is een match. Gaat dan verder en vindt de laatste 12 tekens met .{12}$ , en weer is er een match. Vervolgens worden alle 4-tekenreeksen gematcht.

Debuggex-demo

Vervolgens heb je ^.{8}|.{4}|.{12}$ . De uitdrukking wordt opnieuw van links naar rechts geparseerd, de eerste 8 tekens worden als eerste overeenkomen, maar vervolgens worden alleen reeksen van 4 tekens gematcht, .{12} zal nooit vuren omdat er .{4} wedstrijden!

Debuggex-demo



  1. Hoe kan ik zien of een kolom auto_increment is in mysql?

  2. MySQL-query - Voeg gegevens samen op basis van twee factoren en pas vervolgens de manier aan waarop de gegevens worden gesorteerd op basis van waarden

  3. Ik kan geen bindingsvariabele gebruiken in datagrip

  4. Standaard wachtwoorden van Oracle 11g?