REGEXP_LIKE

Renvoie true si la chaîne correspond à l’expression régulière. Cette fonction est similaire au prédicat LIKE, sauf qu’elle utilise des expressions régulières plutôt qu’une simple correspondance de caractères génériques.

Syntaxe

REGEXP_LIKE(chaîne, motif)

Paramètres

string

Le VARCHAR ou LONG VARCHAR chaîne pour rechercher une correspondance de modèle d’expression régulière. Si une chaîne existe dans une colonne __raw__ d’une table flex ou colonnaire, convertissez la chaîne en une LONG VARCHAR avant de rechercher un motif.

pattern

Une chaîne contenant l’expression régulière pour correspondre à la chaîne. La syntaxe de l’expression régulière est compatible avec la syntaxe de l’expression régulière Perl 5. Voir la documentation sur les expressions régulières Perl pour plus de détails.

modifiers

Un ou plusieurs indicateurs à un seul caractère qui modifient la façon dont l’expression régulière trouve les correspondances dans une chaîne :

b

Traite les chaînes comme des octets binaires, plutôt que des caractères UTF-8.

c

Force la correspondance à être sensible à la casse (la valeur par défaut).

i

Force la correspondance à ne pas tenir compte de la casse.

m

Traitez la chaîne pour qu’elle corresponde à plusieurs lignes. En utilisant ce modificateur, le début de ligne (^) et la fin de ligne ($) les opérateurs d’expression régulière correspondent aux sauts de ligne (\n) dans la chaîne. Sans le modificateur m, les opérateurs de début et de fin de ligne ne correspondent qu’au début et à la fin de la chaîne.

n

Permet à l’opérateur d’expression régulière à un seul caractère (.) de faire correspondre une nouvelle ligne (\n). Sans le modificateur n, l’opérateur . correspond à n’importe quel caractère à l’exception d’une nouvelle ligne.

x

Ajoutez des commentaires à vos expressions régulières. L’utilisation du modificateur x fait que la fonction ignore tous les caractères d’espace non échappés et les commentaires dans l’expression régulière. Les commentaires commencent par un caractère de hachage (#) et se terminent par une nouvelle ligne (\n). Tous les espaces de l’expression régulière auxquels vous souhaitez faire correspondre des chaînes doivent être échappés avec un caractère antislash (\).

Notes

Cette fonction fonctionne sur des chaînes UTF-8 en utilisant les paramètres régionaux par défaut, même si les paramètres régionaux ont été définis sur autre chose.

Si vous portez une requête d’expression régulière à partir d’une base de données Oracle, n’oubliez pas qu’Oracle considère qu’une chaîne de longueur nulle est équivalente à NULL, alors que Vertica ne le fait pas.

Exemples

Cet exemple crée une table contenant plusieurs chaînes pour démontrer les expressions régulières.

Sélectionnez tous les enregistrements de la table contenant la lettre « a ».

= > SÉLECTIONNEZ v À PARTIR DE t OÙ REGEXP_LIKE(v, 'a'); v------ aaa aaa abc abc1 (4 lignes)

Sélectionnez toutes les lignes de la table qui commencent par la lettre « a. »

=>SÉLECTIONNEZ v À PARTIR DE t OÙ REGEXP_LIKE(v, '^a'); v------ aaa abc abc1(3 lignes)

Sélectionnez toutes les lignes qui contiennent la sous-chaîne « aa. »

=>SÉLECTIONNEZ v À PARTIR DE t OÙ REGEXP_LIKE(v, 'aa'); v----- Aaa aaa (2 lignes)

Sélectionnez toutes les lignes contenant un chiffre.

=> SÉLECTIONNEZ v À PARTIR DE t OÙ REGEXP_LIKE(v, '\d'); v ------ 123 abc1(2 lignes)

Sélectionnez toutes les lignes qui contiennent la sous-chaîne « aaa. »

=> SÉLECTIONNEZ v À PARTIR DE t OÙ REGEXP_LIKE(v, 'aaa'); v----- aaa(1 ligne)

Sélectionnez toutes les lignes contenant la sous-chaîne « aaa » en utilisant une correspondance insensible à la casse.

=> SÉLECTIONNEZ v À PARTIR DE t OÙ REGEXP_LIKE(v, 'aaa', 'i'); v----- Aaa aaa (2 lignes)

Sélectionnez les lignes contenant la sous-chaîne « a b c. »

= > SÉLECTIONNEZ v À PARTIR DE t OÙ REGEXP_LIKE(v, 'a b c'); v---(0 lignes)

Sélectionnez les lignes qui contiennent la sous-chaîne « a b c » en ignorant l’espace dans l’expression régulière.

=>SÉLECTIONNEZ v À PARTIR DE t OÙ REGEXP_LIKE(v, 'a b c', 'x'); v------ abc abc1(2 lignes)

Ajoutez des lignes multi-lignes pour démontrer en utilisant le modificateur « m ».

Sélectionnez les lignes qui commencent par la sous-chaîne « Enregistrer » et se terminent par la sous-chaîne « ligne 2. »

=> SÉLECTIONNEZ v à partir de t OÙ REGEXP_LIKE(v, '^Record.* ligne 2''); v---(0 lignes)

Sélectionnez les lignes qui commencent par la sous-chaîne « Record » et se terminent par la sous-chaîne « line 2 », en traitant plusieurs lignes comme des chaînes séparées.

Related Posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *