REGEXP_LIKE

geeft true terug als de tekenreeks overeenkomt met de reguliere expressie. Deze functie is vergelijkbaar met het soortgelijke predicaat, behalve dat het reguliere expressies gebruikt in plaats van eenvoudige jokertekens.

Syntax

REGEXP_LIKE( string, pattern )

Parameters

string

The VARCHAR or LONG VARCHAR tekenreeks om te zoeken naar een reguliere expressie patroon overeenkomst. Als een tekenreeks bestaat in een __raw__ kolom van een flex-of zuilvormige tabel, gegoten tekenreeks naar een LONG VARCHAR voordat u naar patroon zoekt.

pattern

een string die de reguliere expressie bevat die overeenkomt met de string. De syntaxis van de reguliere expressie is compatibel met de Perl 5 reguliere expressie syntaxis. Zie de Perl reguliere expressies documentatie voor details.

modifiers

een of meer vlaggen met één teken die wijzigen hoe de reguliere expressie overeenkomsten vindt in tekenreeks:

laat de reguliere expressieoperator met één karakter (.) overeenkomen met een nieuwe regel (\n). Zonder den modifier, komt de. operator overeen met elk teken behalve een nieuwe regel.

b

behandelen strings als binaire octetten, in plaats van UTF-8 tekens.

c

forceer de overeenkomst hoofdlettergevoelig (de standaard).

i

dwing de overeenkomst hoofdletterongevoelig te maken.

m

behandel de tekenreeks als meerdere regels. Met behulp van deze modifier komen het begin van de regel (^) en het einde van de regel ($) reguliere expressieoperators overeen met regeleinden (\n) binnen de tekenreeks. Zonder dem modifier, komen de begin-en eindoperators alleen overeen met het begin en einde van de tekenreeks.

n
x

voeg opmerkingen toe aan uw reguliere expressies. Het gebruik van de x modifier zorgt ervoor dat de functie alle niet-afgeschermde spatietekens en commentaren in de reguliere expressie negeert. Opmerkingen beginnen met een hash (#) teken en eindigen met een nieuwe regel (\n). Alle spaties in de reguliere expressie die u wilt matchen in tekenreeksen moeten worden escaped met een backslash (\) teken.

Notes

Deze functie werkt op UTF-8 strings met behulp van de standaard landinstelling, zelfs als de landinstelling op iets anders is ingesteld.

Als u een reguliere expressiequery uit een Oracle-database poort, onthoud dan dat Oracle een tekenreeks van nullengte als gelijkwaardig aan NULL beschouwt, terwijl Vertica dat niet doet.

voorbeelden

dit voorbeeld maakt een tabel aan die meerdere strings bevat om reguliere expressies aan te tonen.

Selecteer alle records in de tabel die de letter “a”bevatten

=> selecteer v van t waar REGEXP_LIKE(v,'a'); v ------ Aaa aaa abc abc1(4 rijen)

Selecteer alle rijen in de tabel die beginnen met de letter “a.”

 = > SELECT v FROM t WHERE REGEXP_LIKE(v, '^A'); v ------ aaa abc abc1(3 rows)

Selecteer alle rijen die de substring “aa bevatten.”

=> SELECT v FROM t WHERE REGEXP_LIKE(v,'aa'); v ----- Aaa aaa(2 rijen)

Selecteer alle rijen die een cijfer bevatten.

 = > SELECT V FROM t WHERE REGEXP_LIKE (v, '\d'); v ------ 123 abc1 (2 rijen)

Selecteer alle rijen die de substring “aaa” bevatten.”

=> SELECT v FROM t WHERE REGEXP_LIKE(v,'aaa'); v ----- aaa(1 rij)

Selecteer alle rijen die de substring” aaa ” bevatten met behulp van hoofdletterongevoelige matching.

=> SELECT V FROM t WHERE REGEXP_LIKE(v,'aaa', 'i'); v ----- Aaa aaa(2 rijen)

select rows that contain the substring “a b c.”

=> select v from t where regexp_like(V,'A B C'); v - - - (0 rijen)

selecteer rijen die de substring “A B c” bevatten, waarbij ruimte binnen de reguliere expressie wordt genegeerd.

=> SELECT V FROM t WHERE REGEXP_LIKE(v,'a b c','x'); v ------ abc abc1(2 rijen)

voeg rijen met meerdere regels toe om aan te tonen met de “M”-modifier.

Selecteer rijen die beginnen met de substring “Record” en eindigen met de substring “regel 2.”

 = > SELECT v from t WHERE REGEXP_LIKE (v, ' ^Record.(') regel 2; v - - - (0 rijen)

Selecteer rijen die beginnen met de substring “Record” en eindigen met de substring “line 2”, waarbij meerdere regels als afzonderlijke tekenreeksen worden behandeld.

Related Posts

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *