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.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |