REGEXP_LIKE

Gibt true zurück, wenn die Zeichenfolge mit dem regulären Ausdruck übereinstimmt. Diese Funktion ähnelt dem LIKE-Prädikat, verwendet jedoch reguläre Ausdrücke anstelle des einfachen Platzhalterzeichenabgleichs.

Syntax

REGEXP_LIKE( string, Muster )

Parameter

string

Die VARCHAR oder LONG VARCHAR string, um nach einem Muster mit regulären Ausdrücken zu suchen. Wenn string in einer __raw__ Spalte einer Flex- oder Spaltentabelle vorhanden ist, wandeln Sie string in eine LONG VARCHAR bevor Sie nach pattern suchen.

pattern

Ein String, der den regulären Ausdruck enthält, der mit dem String übereinstimmt. Die Syntax des regulären Ausdrucks ist mit der Perl 5-Syntax für reguläre Ausdrücke kompatibel. Weitere Informationen finden Sie in der Dokumentation zu regulären Ausdrücken von Perl.

modifiers

Ein oder mehrere Flags mit einem Zeichen, die ändern, wie der reguläre Ausdruck Übereinstimmungen in der Zeichenfolge findet:

b

Behandeln Sie Zeichenfolgen als binäre Oktette und nicht als UTF-8-Zeichen.

c

Erzwingen Sie, dass bei der Übereinstimmung die Groß- und Kleinschreibung beachtet wird (Standardeinstellung).

i

Erzwingen Sie, dass bei der Übereinstimmung die Groß- und Kleinschreibung nicht berücksichtigt wird.

m

Behandeln Sie die übereinstimmende Zeichenfolge als mehrere Zeilen. Mit diesem Modifikator stimmen Zeilenanfang (^) und Zeilenende ($) Operatoren für reguläre Ausdrücke mit Zeilenumbrüchen (\n) innerhalb der Zeichenfolge überein. Ohne den Modifikator m stimmen die Operatoren für Zeilenanfang und -ende nur mit dem Anfang und dem Ende der Zeichenfolge überein.

n

Lassen Sie zu, dass der Operator für reguläre Ausdrücke mit einem Zeichen (.) mit einem Zeilenumbruch (\n) übereinstimmt. Ohne den Modifikator n entspricht der Operator . jedem Zeichen außer einem Zeilenumbruch.

x

Fügen Sie Kommentare zu Ihren regulären Ausdrücken hinzu. Die Verwendung des Modifikators x bewirkt, dass die Funktion alle Leerzeichen und Kommentare im regulären Ausdruck ignoriert. Kommentare beginnen mit einem Hash-Zeichen (#) und enden mit einem Zeilenumbruch (\n). Alle Leerzeichen im regulären Ausdruck, die in Zeichenfolgen abgeglichen werden sollen, müssen mit einem umgekehrten Schrägstrich (\) maskiert werden.

Hinweise

Diese Funktion arbeitet mit UTF-8-Zeichenfolgen unter Verwendung des Standardgebietsschemas, auch wenn das Gebietsschema auf etwas anderes festgelegt wurde.

Wenn Sie eine Abfrage mit regulären Ausdrücken aus einer Oracle-Datenbank portieren, denken Sie daran, dass Oracle eine Zeichenfolge mit der Länge Null als äquivalent zu NULL ansieht, Vertica jedoch nicht.

Examples

Dieses Beispiel erstellt eine Tabelle mit mehreren Zeichenfolgen, um reguläre Ausdrücke zu demonstrieren.

Wählen Sie alle Datensätze in der Tabelle aus, die den Buchstaben „a“ enthalten.

=> WÄHLEN SIE v AUS t WHERE REGEXP_LIKE(v,'a'); v ------ Aaa aaa abc abc1(4 Zeilen)

Wählen Sie alle Zeilen in der Tabelle aus, die mit dem Buchstaben „a“ beginnen.“

=> WÄHLEN SIE v AUS t WHERE REGEXP_LIKE(v,'^a'); v ------ aaa abc abc1(3 Zeilen)

Wählen Sie alle Zeilen aus, die den Teilstring „aa.“

=> WÄHLEN SIE v AUS t WHERE REGEXP_LIKE(v,'aa'); v ----- Aaa aaa(2 Zeilen)

Wählen Sie alle Zeilen aus, die eine Ziffer enthalten.

=> WÄHLEN SIE v AUS t WHERE REGEXP_LIKE(v,'\d'); v ------ 123 abc1(2 Zeilen)

Wählen Sie alle Zeilen aus, die den Teilstring „aaa“ enthalten.“

=> WÄHLEN SIE v AUS t WHERE REGEXP_LIKE(v,'aaa'); v ----- aaa(1 Zeile)

Wählen Sie alle Zeilen aus, die die Teilzeichenfolge „aaa“ enthalten, wobei die Groß- und Kleinschreibung nicht berücksichtigt wird.

=> WÄHLEN SIE v AUS t WHERE REGEXP_LIKE(v,'aaa', 'i'); v ----- Aaa aaa(2 Zeilen)

Wählen Sie Zeilen aus, die die Teilzeichenfolge „abc“ enthalten.

=> WÄHLEN SIE v AUS t WOBEI REGEXP_LIKE(v,'abc'); v ---(0 Zeilen)

Wählen Sie Zeilen aus, die die Teilzeichenfolge „a b c“ enthalten, wobei Leerzeichen innerhalb des regulären Ausdrucks ignoriert werden.

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

Fügen Sie mehrzeilige Zeilen hinzu, um sie mit dem Modifikator „m“ zu demonstrieren.

Wählen Sie Zeilen aus, die mit der Teilzeichenfolge „Record“ beginnen und mit der Teilzeichenfolge „line 2″ enden.“

=> WÄHLEN SIE v aus t WOBEI REGEXP_LIKE(v,'^).*zeile 2$'); v ---(0 Zeilen)

Wählen Sie Zeilen aus, die mit der Teilzeichenfolge „Record“ beginnen und mit der Teilzeichenfolge „line 2“ enden, wobei mehrere Zeilen als separate Zeichenfolgen behandelt werden.

Related Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.