Kategorien:

Zeichenfolgenfunktionen (reguläre Ausdrücke)

RLIKE

Gibt „true“ zurück, wenn das Subjekt mit dem angegebenen Muster übereinstimmt. Beide Eingaben müssen Textausdrücke sein.

RLIKE ähnelt der Funktion LIKE, bietet jedoch erweiterte reguläre POSIX-Ausdrücke anstelle von SQL LIKE-Mustersyntax. Unterstützt komplexere Abgleichsbedingungen als LIKE.

Aliasse

REGEXP (2. Syntax), REGEXP_LIKE (1. Syntax)

Siehe auch:

ILIKE , LIKE

REGEXP_COUNT , REGEXP_INSTR , REGEXP_REPLACE , REGEXP_SUBSTR

Syntax

-- 1st syntax
RLIKE( <subject> , <pattern> [ , <parameters> ] )

-- 2nd syntax
<subject> RLIKE <pattern>

Argumente

Benötigt:

Subjekt

Abzugleichendes Subjekt.

Muster

Abzugleichendes Muster.

Optional:

Parameter

Zeichenfolge aus einem oder mehreren Zeichen, in der die Parameter angegeben sind, die zur Suche nach Übereinstimmungen verwendet werden. Unterstützte Werte:

c , i , m , e , s

Weitere Details dazu finden Sie unter Parameter.

Standard: c

Nutzungshinweise

  • Die Funktion verankert implizit ein Muster an beiden Enden (d. h. '' wird automatisch zu '^$' und 'ABC' automatisch zu '^ABC$'). Um beispielsweise eine beliebige Zeichenfolge, die mit ABC beginnt, abzugleichen, wäre das Muster 'ABC.*' erforderlich.

  • Weitere Nutzungshinweise finden Sie unter Allgemeine Nutzungshinweise.

  • Es gibt kein Standard-Escape-Zeichen.

  • Wenn Sie den umgekehrten Schrägstrich (Backslash) als Escape-Zeichen verwenden, müssen Sie den Backslash in der ESCAPE-Klausel als Escape-Zeichen angeben. Der folgende Befehl gibt beispielsweise an, dass das Escape-Zeichen der Backslash ist, und sucht dann mit diesem Escape-Zeichen nach „%“ als Literal (ohne das Escape-Zeichen wird „%“ als Platzhalter behandelt):

    'SOMETHING%' LIKE '%\\%%' ESCAPE '\\';
    

    Beispiele zur Verwendung von Escape-Zeichen und insbesondere des umgekehrten Schrägstrichs als Escape-Zeichen finden Sie in den Beispielen für die LIKE-Funktion.

Sortierungsdetails

Arguments with collation specifications are currently not supported.

Beispiele

Einrichtung für Beispiele:

CREATE OR REPLACE TABLE rlike_ex(city varchar(20));
INSERT INTO rlike_ex VALUES ('Sacramento'), ('San Francisco'), ('San Jose'), (null);

Erste Syntax

Mustererkennung mit Platzhaltern ohne Berücksichtigung der Groß- und Kleinschreibung:

SELECT * FROM rlike_ex WHERE RLIKE(city, 'san.*', 'i');

+---------------+
| CITY          |
|---------------|
| San Francisco |
| San Jose      |
+---------------+

Zurückgeben eines „true“-/“false“-Werts beim Testen des Formats von Telefonnummern und E-Mail-Adressen:

-- Escape the backslash character (\) in \w and \d

SELECT rlike('800-456-7891','[2-9]\\d{2}-\\d{3}-\\d{4}') FROM dual;

+---------------------------------------------------+
| RLIKE('800-456-7891','[2-9]\\D{2}-\\D{3}-\\D{4}') |
|---------------------------------------------------|
| True                                              |
+---------------------------------------------------+

SELECT rlike('jsmith@email.com','\\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}') FROM dual;

+-------------------------------------------------------------+
| RLIKE('JSMITH@EMAIL.COM','\\W+@[A-ZA-Z_]+?\.[A-ZA-Z]{2,3}') |
|-------------------------------------------------------------|
| True                                                        |
+-------------------------------------------------------------+

-- Alternatively, rewrite the statements and avoid sequences that rely on the backslash character

SELECT rlike('800-456-7891','[2-9][0-9]{2}-[0-9]{3}-[0-9]{4}') FROM dual;

+---------------------------------------------------------+
| RLIKE('800-456-7891','[2-9][0-9]{2}-[0-9]{3}-[0-9]{4}') |
|---------------------------------------------------------|
| True                                                    |
+---------------------------------------------------------+

SELECT rlike('jsmith@email.com','[a-zA-Z_]+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}') FROM dual;

+-------------------------------------------------------------------+
| RLIKE('JSMITH@EMAIL.COM','[A-ZA-Z_]+@[A-ZA-Z_]+?\.[A-ZA-Z]{2,3}') |
|-------------------------------------------------------------------|
| True                                                              |
+-------------------------------------------------------------------+

Zweite Syntax

Mustererkennung mit Berücksichtigung der Groß- und Kleinschreibung:

SELECT * FROM rlike_ex WHERE city RLIKE 'San.* [fF].*';

+---------------+
| CITY          |
|---------------|
| San Francisco |
+---------------+