Ein regulärer Ausdruck ist eine Sequenz von Zeichen, Platzhalterzeichen 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 LIKE-Suchbedingung unterstützt keine regulären Ausdrücke. Allerdings ähneln einige der Platzhalterzeichen und Operatoren, die Sie bei LIKE verwenden können, den Platzhalterzeichen 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 GROUPO.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 © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |