REGEXP_LIKE

zwraca true, jeśli łańcuch jest zgodny z wyrażeniem regularnym. Funkcja ta jest podobna do predykatu LIKE, z tą różnicą, że używa wyrażeń regularnych zamiast prostego dopasowywania znaków wieloznacznych.

składnia

REGEXP_LIKE( string, wzór) 

parametry

pattern
modifiers
string

TheVARCHAR lubLONG VARCHAR ciąg znaków do wyszukiwania dopasowania wzorca wyrażenia regularnego. Jeśli string istnieje w kolumnie__raw__ tabeli flex lub tabeli Kolumnowej, prześlij string doLONG VARCHAR przed wyszukaniem wzorca.

łańcuch zawierający Wyrażenie regularne dopasowane do łańcucha. Składnia wyrażenia regularnego jest zgodna ze składnią wyrażenia regularnego Perl 5. Szczegółowe informacje można znaleźć w dokumentacji wyrażeń regularnych Perla.

jedno lub więcej jednoznakowych znaczników, które modyfikują sposób, w jaki Wyrażenie regularne znajduje dopasowania w łańcuchu:

c
i
m
n
x
b

traktuj ciągi jako oktety binarne, a nie znaki UTF-8.

wymusza rozróżnienie wielkości liter (domyślnie).

wymusza, aby dopasowanie było niewrażliwe na wielkość liter.

traktuj ciąg znaków jako wiele linii. Używając tego modyfikatora, początek wiersza (^) I koniec wiersza ($) operatory wyrażenia regularnego dopasowują podziały wiersza (\n) w łańcuchu. Bez modyfikatoram operatory początku i końca linii pasują Tylko do początku i końca łańcucha.

pozwól, aby pojedynczy znakowy operator wyrażenia regularnego (.) dopasował nową linię (\n). Bez modyfikatoran operator. dopasowuje dowolny znak z wyjątkiem nowej linii.

Dodaj komentarze do wyrażeń regularnych. Użycie modyfikatorax powoduje, że funkcja ignoruje wszystkie znaki spacji i komentarze w wyrażeniu regularnym. Komentarze rozpoczynają się znakiem hash (#) I kończą znakiem nowej linii (\n). Wszystkie spacje w wyrażeniu regularnym, które mają być dopasowane do ciągów znaków, muszą być poprzedzone znakiem odwrotnego ukośnika (\).

uwagi

Ta funkcja działa na ciągach UTF-8 przy użyciu domyślnych ustawień regionalnych, nawet jeśli Ustawienia regionalne zostały ustawione na coś innego.

Jeśli przenosisz Zapytanie o wyrażenie regularne z bazy danych Oracle, pamiętaj, że Oracle uważa, że łańcuch o zerowej długości jest równoważny NULL, podczas gdy Vertica nie.

przykłady

Ten przykład tworzy tabelę zawierającą kilka łańcuchów znaków, aby zademonstrować wyrażenia regularne.

Wybierz wszystkie rekordy w tabeli, które zawierają literę „a”.

=> wybierz V Z T, gdzie REGEXP_LIKE(v,'A'); v ------ Aaa aaa abc abc1(4 wiersze)  

Wybierz wszystkie wiersze w tabeli, które zaczynają się od litery „a.”

=> SELECT V FROM T WHERE REGEXP_LIKE(v,'^A'); V ------ aaa abc abc1(3 wiersze) 

Select all rows that contains the substring ” aa.”

=> SELECT V FROM T WHERE REGEXP_LIKE(V,'aa'); v ----- Aaa aaa(2 wiersze) 

Select all rows that contains a digit.

=> SELECT V FROM T WHERE REGEXP_LIKE(v,'\D'); v ------ 123 abc1(2 wiersze)

Zaznacz wszystkie wiersze zawierające podłańcuch „aaa.”

=> SELECT V FROM T WHERE REGEXP_LIKE(V,'aaa'); V ----- aaa(1 wiersz)

Select all rows that contains the substring” aaa ” using case insensitive matching.

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

Select rows that contains the substring „a b c.”

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

wybiera wiersze zawierające podłańcuch „a b c” ignorując spację w wyrażeniu regularnym.

=> SELECT V FROM T WHERE REGEXP_LIKE(v,'A B c','x'); v ------ abc abc1(2 wiersze) 

Add multi-line rows to demonstrate using the „M” modifier.

Wybierz wiersze, które rozpoczynają się podłańcuchem „rekord” i kończą podłańcuchem „linia 2.”

=> SELECT v from T WHERE REGEXP_LIKE(v,'^Record.* line 2$'); V - - - (0 wierszy)

wybiera wiersze, które zaczynają się od podłańcucha „Record” i kończą na podłańcuchu „line 2”, traktując wiele linii jako oddzielne łańcuchy.

Related Posts

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *