Suchen die Übereinstimmung eines Musters mit einer Zeichenfolge.
Ausdruck [NOT] REGEXP Muster [ ESCAPE Escape-Ausdruck ]
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 (\).
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.
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.
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].
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 |