Extrahiert Teilzeichenfolgen aus Zeichenfolgen mithilfe von regulären Ausdrücken.
REGEXP_SUBSTR( Ausdruck, Regulärer_Ausdruck [, Start-Offset [ , Vorkommen [, Escape-Ausdruck ] ] ] )
Ausdruck Die zu durchsuchende Zeichenfolge.
Regulärer_Ausdruck Das Suchmuster. Weitere Hinweise zur Syntax regulärer Ausdrücke finden Sie unter Überblick über reguläre Ausdrücke.
Start-Offset Ausgangspunkt in Ausdruck, an dem begonnen werden soll. Start-Offset wird als positive Ganzzahl ausgedrückt und stellt die Anzahl der Zeichen dar, die gezählt werden müssen, wenn auf der linken Seite der Zeichenfolge begonnen wird. Standardwert ist 1 (Beginn der Zeichenfolge).
Vorkommen Bei mehreren Fundstellen in Ausdruck geben Sie mit einer Ganzzahl an, welches Vorkommen ermittelt werden soll. Beispiel: Wenn dieser Parameter 3 lautet, wird das dritte Vorkommen gefunden. Standardwert ist "1".
Escape-Ausdruck Das Escapezeichen, das für den regulären Ausdruck verwendet werden soll. Das Standardzeichen ist der Backslash (\).
LONG VARCHAR
REGEXP_SUBSTR gibt NULL zurück, wenn Regulärer_Ausdruck nicht gefunden wird.
Ähnlich wie bei der Suchbedingung REGEXP benutzt die REGEXP_SUBSTR-Funktion Codepunkte für die Übereinstimmungs- und Bereichsüberprüfung. Dies bedeutet, dass die Einstellung der Datenbank für die Berücksichtigung von Groß- und Kleinschreibung die Ergebnisse nicht beeinflusst. Weitere Hinweise zur Suche nach Übereinstimmungen mit REGEXP_SUBSTR und die Auswertung von Gruppen finden Sie unter Unterschiede im Zeichenvergleich von LIKE, REGEXP und SIMILAR TO.
Wenn Übereinstimmungen mit einer Zeichenklasse gesucht werden, die nur eine Teilzeichenklasse enthält, verwenden Sie äußere
eckige Klammern und eckige Klammern für die Teilzeichenklasse (Beispiel: REGEXP_SUBSTR (Ausdruck, '[[:digit:]]')
). Weitere Hinweise zur Suche nach Übereinstimmungen in Teilzeichenklassen finden Sie unter Reguläre Ausdrücke: Spezielle Teilzeichenklassen.
SQL/2003 Erweiterung des Herstellers
Im folgenden Beispiel werden Werte in der Spalte Employees.Street in Straßennummer und Straßennamen aufgeteilt:
SELECT REGEXP_SUBSTR( Street, '^\S+' ) as street_num, REGEXP_SUBSTR( Street, '(?<=^\S+\s+).*$' ) AS street_name FROM Employees; |
street_num | street_name |
---|---|
9 | East Washington Street |
7 | Pleasant Street |
539 | Pond Street |
1244 | Great Plain Avenue |
... | ... |
Um zu ermitteln, ob die IP-Adresse der aktuellen Verbindung in einem bestimmten Bereich von IP-Adressen liegt (in diesem Fall: 10.25.101.xxx oder 10.25.102.xxx), können Sie folgende Anweisung ausführen:
IF REGEXP_SUBSTR( CONNECTION_PROPERTY( 'NodeAddress' ), '\\d+\\.\\d+\\.\\d+' ) IN ( '10.25.101' , '10.25.102' ) THEN MESSAGE 'In range' TO CLIENT; ELSE MESSAGE 'Out of range' TO CLIENT; END IF; |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |