Catégories :

Fonctions de chaîne (expressions régulières)

RLIKE

Renvoie « true » si le sujet correspond au modèle spécifié. Les deux entrées doivent être des expressions textuelles.

RLIKE est similaire à la fonction LIKE, mais avec des expressions régulières étendues POSIX au lieu de la syntaxe de modèle SQL LIKE. Il prend en charge des conditions de correspondance plus complexes que LIKE.

Alias

REGEXP (2e syntaxe) , REGEXP_LIKE (1ère syntaxe)

Voir aussi : Fonctions de chaîne (expressions régulières)

Syntaxe

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

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

Arguments

Obligatoire :

sujet

Sujet devant correspondre.

motif

Modèle devant correspondre.

Facultatif :

paramètres

Chaîne d’un ou plusieurs caractères spécifiant les paramètres utilisés pour la recherche de correspondances. Valeurs prises en charge :

c , i , m , e , s

Pour plus de détails, voir Paramètres.

Par défaut : c

Renvoie

Le type de données de la valeur renvoyée est BOOLEAN.

Notes sur l’utilisation

  • La fonction ancre implicitement un motif aux deux extrémités (c.-à-d. que '' devient automatiquement '^$' et 'ABC' devient automatiquement '^ABC$'). Pour faire correspondre n’importe quelle chaîne commençant par ABC, le motif serait 'ABC.*'.

  • Le caractère barre oblique inverse (\) est le caractère d’échappement. Pour plus d’informations, voir Caractères d’échappement et mises en garde.

  • Pour plus de notes sur l’utilisation, voir Notes générales sur l’utilisation pour les fonctions d’expression régulière.

Détails du classement

Arguments with collation specifications are currently not supported.

Exemples

Préparer des exemples :

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

Première syntaxe

Correspondance de modèle insensible à la casse avec les caractères génériques :

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

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

Renvoie une valeur true / false lors du test du format des numéros de téléphone et des adresses électroniques :

-- 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                                                              |
+-------------------------------------------------------------------+

Deuxième syntaxe

Correspondance de modèle sensible à la casse :

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

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

Exemples supplémentaires

Pour des exemples supplémentaires d’expressions régulières, voir REGEXP.