Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Sprachelemente » Ausdrücke

 

Überblick über reguläre Ausdrücke

Ein regulärer Ausdruck ist eine Sequenz von Zeichen, Wildcard-Zeichen oder Operatoren, die ein Muster für das Durchsuchen einer Zeichenfolge festlegt. SQL Anywhere unterstützt reguläre Ausdrücke als Teil der Suchbedingungen REGEXP oder SIMILAR TO in der WHERE-Klausel einer SELECT-Anweisung oder als Argument für die REGEXP_SUBSTR-Funktion. Die Suchbedingung LIKE unterstützt keine regulären Ausdrücke. Allerdings ähneln einige der Wildcard-Zeichen und Operatoren, die Sie bei LIKE verwenden können, den Wildcard-Zeichen und Operatoren der regulären Ausdrücke.

Die nachstehende SELECT-Anweisung benutzt einen regulären Ausdruck ((K|C[^h])%), um in der Tabelle Contacts nach Kontakten zu suchen, deren Nachname mit K oder C, nicht aber mit Ch beginnt, und diese zurückzugeben:

SELECT Surname, GivenName 
   FROM Contacts
   WHERE Surname SIMILAR TO '(K|C[^h])%';

Ein regulärer Ausdruck kann zusätzliche Syntax enthalten, um Gruppierungen, Quantifizierungen, Assertierungen und Alternierungen festzulegen, wie unten angegeben.

  • Gruppierung   Bei der Gruppierung können Teile eines regulären Ausdrucks in Gruppen zusammengefasst werden, um zusätzliche Übereinstimmungskriterien zu liefern. Beispiel: '(abc){2}' steht für abcabc.

    Sie können die Gruppierung auch verwenden, um die Reihenfolge zu steuern, in der die Teile des Ausdruck ausgewertet werden. Beispiel: 'ab(cdcd)' sucht erst nach einem Vorkommen von "cdcd" und ermittelt dann, ob vor dem "cdcd" die Zeichenfolge "ab" steht.

  • Quantifizierung   Mit der Quantifizierung können Sie steuern, wie oft der voranstehende Teil des Ausdrucks vorkommen kann. Beispiel: Ein Fragezeichen (?) ist ein Quantifizierer, der null oder ein Auftreten des vorhergehenden Zeichens angibt. Daher gilt: 'honou?r' stimmt sowohl mit honor als auch mit honour überein.

  • Assertierung   Normalerweise bringt die Suche nach einem Muster eben dieses Muster als Ergebnis. Mit Assertierungen können Sie das Vorhandensein eines Musters prüfen, ohne dass dieses Muster in das Suchergebnis aufgenommen wird. Beispiel: 'SQL(?= Anywhere)' findet SQL nur, wenn danach eine Leerstelle und Anywhere kommt.

  • Alternierung   Bei der Alternierung können Sie alternative Suchmuster angeben, wenn das erste Suchmuster nicht gefunden wird. Alternative Muster werden von links nach rechts ausgewertet und die Suche bricht bei der ersten Fundstelle ab. Beispiel: 'col(o|ou)r' sucht nach einem Vorkommen von "color". Wenn dies nicht gefunden wird, geht die Suche nach "colour" weiter.

Siehe auch