REGEXP_LIKE

vrací true, pokud řetězec odpovídá regulárnímu výrazu. Tato funkce je podobná jako predikát, kromě toho, že používá regulární výrazy spíše než jednoduché párování zástupných znaků.

Syntax

REGEXP_LIKE( řetězec, vzor )

Parametry

string

VARCHAR nebo LONG VARCHAR řetězec vyhledávání pro regulární výraz utkání. Pokud řetězec neexistuje v __raw__ sloupec flex nebo sloupovitý stůl, obsazení řetězec LONG VARCHAR před hledáním vzoru.

pattern

řetězec obsahující regulární výraz zápas proti řetězec. Syntaxe regulárního výrazu je kompatibilní se syntaxí regulárního výrazu Perl 5. Podrobnosti naleznete v dokumentaci regulárních výrazů Perl.

modifiers

Jeden nebo více single-znaku vlajky, které modifikují, jak regulární výraz najde zápasy v řetězci:

b

Chovat jako binární řetězce oktetů, spíše než UTF-8 znaků.

c

vynutit shodu, aby byla malá a velká písmena (výchozí).

i

vynutit shodu, aby byla malá a velká písmena.

m

zacházejte s řetězcem tak, aby odpovídal více řádkům. Pomocí tohoto modifikátoru, začátek řádku (^) a konec řádku ($) regulární výraz subjekty zápas zalomení řádku (\n) v rámci řetězce. Bez modifikátoru m se začátek a konec lineárních operátorů shodují pouze se začátkem a koncem řetězce.

n

Povolit jeden znak regulární výraz operátor (.) tak, aby odpovídala novým řádkem (\n). Bez modifikátoru n operátor. odpovídá libovolnému znaku kromě nového řádku.

x

přidejte komentáře k regulárním výrazům. Použití modifikátoru x způsobí, že funkce ignoruje všechny znaky a komentáře v regulárním výrazu. Komentáře začít s hash (#) charakter a končí novým řádkem (\n). Všechny mezery v regulárním výrazu, které chcete porovnávat v řetězcích, musí být escapovány zpětným lomítkem (\).

Poznámky

Tato funkce funguje na UTF-8 řetězce pomocí výchozí národní prostředí, a to i pokud je locale nastaveno na něco jiného.

Pokud přenášíte dotaz regulárního výrazu z databáze Oracle, nezapomeňte, že Oracle považuje řetězec s nulovou délkou za ekvivalentní NULL, zatímco Vertica ne.

příklady

tento příklad vytvoří tabulku obsahující několik řetězců pro demonstraci regulárních výrazů.

Vyberte všechny záznamy v tabulce, které obsahují písmeno „a“.

=> VYBERTE možnost v Z t KDE REGEXP_LIKE(v,'a'); v ------ Aaa aaa abc abc1(4 řádky)

Vyberte všechny řádky v tabulce, které začínají písmenem „.“

=> VYBERTE možnost v Z t KDE REGEXP_LIKE(v,'^'); v ------ aaa abc abc1(3 řádky)

Vyberte všechny řádky, které obsahují řetězec „aa.“

=> VYBERTE možnost v Z t KDE REGEXP_LIKE(v,'aa'); v ----- Aaa aaa(2 řádky)

Vyberte všechny řádky, které obsahují číslice.

=> VYBERTE možnost v Z t KDE REGEXP_LIKE(v,'\d'); v ------ 123 abc1(2 řádky)

Vyberte všechny řádky, které obsahují řetězec „aaa.“

=> VYBERTE možnost v Z t KDE REGEXP_LIKE(v,'aaa'); v ----- aaa(1 řádek)

Vyberte všechny řádky, které obsahují řetězec „aaa“ pomocí malá a velká písmena odpovídající.

=> VYBERTE možnost v Z t KDE REGEXP_LIKE(v,'aaa', 'já'); v ----- Aaa aaa(2 řádky)

Vyberte řádky, které obsahují podřetězec „a b c.“

=> VYBERTE možnost v Z t KDE REGEXP_LIKE(v,'a b c'); v - - - (0 řádků)

vyberte řádky, které obsahují podřetězec“ a b c “ ignorující mezeru v regulárním výrazu.

=> VYBERTE možnost v Z t KDE REGEXP_LIKE(v,'a b c','x'); v ------ abc abc1(2 řádky)

Přidat multi-line řádků prokázat pomocí „m“ modifikátor.

vyberte řádky, které začínají podřetězcem „záznam“ a končí podřetězcem “ řádek 2.“

=> vyberte v Z t, kde REGEXP_LIKE (v,'^Record.* řádek 2$'); v ---(0 rows)

Vyberte řádky, které začínají s podřetězec „Record“ a na konci se podřetězec „linka 2“ léčila více řádcích jako samostatné řetězce.

Related Posts

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *