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 » Suchbedingungen » Die Suchbedingungen LIKE, REGEXP und SIMILAR TO

 

REGEXP-Suchbedingung

Suchen die Übereinstimmung eines Musters mit einer Zeichenfolge.

Syntax
Ausdruck [NOT] REGEXP Muster [ ESCAPE Escape-Ausdruck ]
Parameter

Ausdruck   Die zu durchsuchende Zeichenfolge.

Muster   Der reguläre Ausdruck, nach dem in Ausdruck gesucht werden soll.

Weitere Hinweise zur Syntax für reguläre Ausdrücke finden Sie unter Überblick über reguläre Ausdrücke.

Escape-Ausdruck   Das für die Übereinstimmung zu verwendende Escapezeichen. Das Standardzeichen ist der Backslash (\).

Bemerkungen

Die REGEXP-Suchbedingung findet eine komplette Zeichenfolge, keine Teilzeichenfolge. Um die Übereinstimmung einer Teilzeichenfolge mit der Zeichenfolge zu finden, setzen Sie die Zeichenfolge zwischen Wildcards, die für den Rest der Zeichenfolge stehen (.*Muster.*). Beispiel: SELECT ... WHERE Description REGEXP 'car' findet nur car, nicht aber sportscar. Hingegen findet SELECT ... WHERE Description REGEXP '.*car' car, sportscar und jede Zeichenfolge, die mit car endet. Als Alternative können Sie Ihre Abfrage auch neu schreiben und die REGEXP_SUBSTR-Funktion verwenden, die speziell für die Suche nach einer Teilzeichenfolge innerhalb einer Zeichenfolge entwickelt wurde.

Wenn Übereinstimmungen mit einer Teilzeichenklasse gesucht werden, müssen Sie die äußeren eckigen Klammern und die eckigen Klammern für die Teilzeichenklasse eingeben. Beispiel: Ausdruck REGEXP '[[:digit:]]'). Weitere Hinweise zur Suche nach Übereinstimmungen in Teilzeichenklassen finden Sie unter Reguläre Ausdrücke: Spezielle Teilzeichenklassen.

Datenbankkollatierung und Suche nach Übereinstimmungen

REGEXP findet ein Literal in einem Suchmuster nur, wenn es genau dasselbe Zeichen darstellt (also wenn es denselben Codepunktwert hat). Bereiche in Zeichenklassen (z.B. '[A-F]') finden nur Zeichen mit Codepunktwerten, die mindestens gleich dem Codepunktwert des ersten Zeichens des Bereichs (A) und maximal gleich dem Codepunktwert des zweiten Zeichens des Bereichs (F) sind.

Einen Vergleich der Auswertung von Suchmustern und Bereichen durch LIKE, SIMILAR TO und REGEXP finden Sie unter Die Suchbedingungen LIKE, REGEXP und SIMILAR TO.

Vergleiche werden Zeichen-für-Zeichen durchgeführt, im Unterschied zum Gleichheitsoperator (=) und zu anderen Operatoren, bei denen der Vergleich Zeichenfolge-für-Zeichenfolge erfolgt. Beispiel: Wenn ein Vergleich in einer UCA-Kollatierung erfolgt (CHAR oder NCHAR mit Kollatierungseinstellung UCA) ist 'Æ'='AE' TRUE, aber 'Æ' REGEXP 'AE' ist FALSE.

Unterstützung nationaler Zeichen (National Characters, NCHAR)

REGEXP-Suchbedingungen können verwendet werden, um CHAR- und NCHAR-Zeichenfolgen zu vergleichen. In diesem Fall wird die Zeichensatzkonvertierung so durchgeführt, dass der Vergleich mit einem gemeinsamen Datentyp erfolgt. Danach wird ein Codepunkt-für-Codepunkt-Vergleich durchgeführt. Weitere Hinweise finden Sie unter Vergleiche zwischen CHAR und NCHAR.

Sie können Ausdruck oder Muster als NCHAR-Zeichenfolgenliteral angeben, indem Sie den in Anführungszeichen gesetzten Wert mit dem Präfix N versehen (zum Beispiel Ausdruck REGEXP N'Muster'). Sie können auch die CAST-Funktion verwenden, um das Muster auf CHAR oder NCHAR umzuwandeln (z.B. Ausdruck REGEXP CAST(Muster AS Datentyp).

Weitere Hinweise finden Sie unter Zeichenfolgenliterale und CAST-Funktion [Datentypkonvertierung].

Siehe auch