REGEXP_LIKE

returnează true dacă șirul se potrivește cu expresia regulată. Această funcție este similară cu predicatul similar, cu excepția faptului că folosește expresii regulate, mai degrabă decât simpla potrivire a caracterelor wildcard.

sintaxă

REGEXP_LIKE( string, pattern )

parametri

string

VARCHAR sau LONG VARCHAR șir pentru a căuta o potrivire model expresie regulată. Dacă șirul există într-o__raw__ coloană a unui tabel flex sau coloană, aruncați șirul într-unLONG VARCHAR înainte de a căuta modelul.

pattern

un șir care conține expresia regulată pentru a se potrivi cu șirul. Sintaxa expresiei regulate este compatibilă cu sintaxa expresiei regulate Perl 5. Consultați documentația pentru expresii regulate Perl pentru detalii.

modifiers

unul sau mai multe steaguri cu un singur caracter care modifică modul în care expresia regulată găsește potriviri în șir:

b

tratați șirurile ca octeți binari, mai degrabă decât caractere UTF-8.

c

forțați potrivirea să fie sensibilă la majuscule (implicit).

i

forțați potrivirea să fie insensibilă la majuscule și minuscule.

m

tratați șirul pentru a se potrivi ca mai multe linii. Folosind acest modificator, începutul liniei (^) și sfârșitul liniei ($)operatorii de expresie regulată se potrivesc cu pauzele de linie (\n) în șir. Fără modificatorulm, începutul și sfârșitul operatorilor de linie se potrivesc doar cu începutul și sfârșitul șirului.

n

permiteți operatorului de expresie regulată cu un singur caracter (.) să se potrivească cu o nouă linie (\n). Fără modificatoruln, operatorul. se potrivește cu orice caracter, cu excepția unei linii noi.

x

adăugați comentarii la expresiile dvs. regulate. Utilizarea modificatoruluix face ca funcția să ignore toate caracterele și comentariile spațiale necapturate din expresia regulată. Comentariile încep cu un caracter hash (#) și se termină cu o linie nouă (\n). Toate spațiile din expresia regulată pe care doriți să le potriviți în șiruri trebuie să fie scăpate cu un caracter backslash (\).

Note

această funcție funcționează pe șiruri UTF-8 folosind setările locale implicite, chiar dacă setările locale au fost setate la altceva.

dacă portați o interogare de expresie regulată dintr-o bază de date Oracle, rețineți că Oracle consideră că un șir de lungime zero este echivalent cu nul, în timp ce Vertica nu.

Exemple

acest exemplu creează un tabel care conține mai multe șiruri pentru a demonstra expresii regulate.

Selectați toate înregistrările din tabel care conțin litera „A.”

=> selectați v din t unde REGEXP_LIKE(v,'a'); v ------ Aaa aaa abc abc1(4 rânduri) 

Selectați toate rândurile din tabel care încep cu litera „a.”

=> selectați v din T unde REGEXP_LIKE(v,'^a'); v ------ AAA abc abc1(3 rânduri) 

Selectați toate rândurile care conțin substringul ” aa.”

=> selectați v din t unde REGEXP_LIKE(V,'aa'); v ----- Aaa aaa(2 rânduri) 

Selectați toate rândurile care conțin o cifră.

=> selectați v din t unde REGEXP_LIKE( v, '\d'); v ------ 123 abc1 (2 rânduri) 

Selectați toate rândurile care conțin subșirul „aaa.”

=> selectați v din T unde REGEXP_LIKE(v,'aaa'); v ----- aaa(1 rând) 

Selectați toate rândurile care conțin subșirul” AAA ” folosind potrivirea insensibilă la majuscule.

=> selectați v din T unde REGEXP_LIKE(v,'aaa', 'i'); v ----- Aaa aaa(2 rânduri) 

selectați rânduri care conțin substringul „A b c.”

=> selectați V din T unde regexp_like(V,'A B C'); V - - - (0 rânduri)

selectați rânduri care conțin subșirul „A b c” ignorând spațiul din expresia regulată.

=> selectați v din T unde REGEXP_LIKE(v,'A b c','x'); v ------ abc abc1(2 rânduri) 

adăugați rânduri cu mai multe linii pentru a demonstra folosind modificatorul „m”.

selectați rândurile care încep cu subșirul „înregistrare” și se termină cu subșirul „linia 2.”

=> selectați v din t unde REGEXP_LIKE(V,'^înregistrare.* linia 2$'); V - - - (0 rânduri)

selectați rânduri care încep cu subșirul „înregistrare” și se termină cu subșirul „linia 2”, tratând mai multe linii ca șiruri separate.

Related Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *