REGEXP_LIKE-Funktion Oracle/PLSQL

In diesem Oracle-Lernprogramm wird erläutert, wie Sie die Oracle/PLSQL REGEXP_LIKE-Funktion mit Syntax und Beispielen verwenden.

Beschreibung

Mit der Oracle REGEXP_LIKE-Bedingung können Sie einen regulären Ausdruck in der WHERE-Klausel einer SELECT-, INSERT-, UPDATE- oder DELETE-Anweisung abgleichen.

Syntax

Die Syntax für die REGEXP_LIKE-Funktion in Oracle/PLSQL lautet:

REGEXP_LIKE ( expression, pattern [, match_parameter ] )

Parameter oder Argumente

expression Ein Zeichenausdruck wie eine Spalte oder ein Feld. Dies kann der Datentyp VARCHAR2, CHAR, NVARCHAR2, NCHAR, CLOB oder NCLOB sein.

pattern Die Übereinstimmungsinformationen für reguläre Ausdrücke. Es kann eine Kombination aus Folgendem sein:

Wert Beschreibung
^ Entspricht dem Anfang einer Zeichenfolge. Wenn es mit einem match_parameter von ‚m‘ verwendet wird, stimmt es mit dem Anfang einer Zeile irgendwo innerhalb des Ausdrucks überein.
$ Entspricht dem Ende einer Zeichenfolge. Wenn es mit einem match_parameter von ‚m‘ verwendet wird, stimmt es mit dem Ende einer Zeile irgendwo innerhalb von Ausdruck überein.
* Entspricht null oder mehr Vorkommen.
+ Entspricht einem oder mehreren Vorkommen.
? Entspricht Null oder einem Vorkommen.
. Entspricht einem beliebigen Zeichen außer NULL.
| Wird wie ein „OR“ verwendet, um mehr als eine Alternative anzugeben.
[ ] Wird verwendet, um eine übereinstimmende Liste anzugeben, in der Sie versuchen, mit einem der Zeichen in der Liste übereinzustimmen.
[^ ] Wird verwendet, um eine nicht übereinstimmende Liste anzugeben, in der Sie versuchen, ein beliebiges Zeichen mit Ausnahme der Zeichen in der Liste zu finden.
( ) Wird zum Gruppieren von Ausdrücken als Unterausdruck verwendet.
{m} Entspricht m-mal.
{m,} Entspricht mindestens m-mal.
{m,n} Entspricht mindestens m-mal, aber nicht mehr als n-mal.
\n n ist eine Zahl zwischen 1 und 9. Entspricht dem n-ten Teilausdruck innerhalb von () vor der Begegnung mit \ n.
[..] Entspricht einem Sortierelement, das mehr als ein Zeichen enthalten kann.
[::] Entspricht Zeichenklassen.
[==] Entspricht Äquivalenzklassen.
\d Entspricht einem Ziffernzeichen.
\D Entspricht einem Nicht-Digit-Zeichen.
\w Entspricht einem Wortzeichen.
\W Entspricht einem Nicht-Wortzeichen.
\s Entspricht einem Leerzeichen.
\S entspricht einem Nicht-Leerzeichen-Zeichen.
\A Entspricht dem Anfang einer Zeichenfolge oder entspricht am Ende einer Zeichenfolge vor einem Zeilenvorschubzeichen.
\Z Entspricht am Ende einer Zeichenfolge.
*? Entspricht dem vorhergehenden Muster null oder mehr Vorkommen.
+? Stimmt das vorherige Muster mit einem oder mehreren Vorkommen überein.
?? Entspricht dem vorhergehenden Muster null oder einem Vorkommen.
{n}? Entspricht dem vorherigen Muster n-mal.
{n,}? Stimmt mindestens n mal mit dem vorhergehenden Muster überein.
{n,m}? Entspricht dem vorherigen Muster mindestens n-mal, aber nicht mehr als m-mal.

match_parameter Wahlweise. Es ermöglicht Ihnen, das übereinstimmende Verhalten für die Bedingung REGEXP_LIKE zu ändern. Es kann eine Kombination aus Folgendem sein:

Wert Beschreibung

‚c‘ Führen Sie eine Unterscheidung zwischen Groß- und Kleinschreibung durch.

‚i‘ Führen Sie die Groß- / Kleinschreibung nicht aus.

’n‘ Ermöglicht die Übereinstimmung des Punkts (.) Mit dem Zeilenumbruchzeichen. Standardmäßig ist der Punkt ein Platzhalter.

‚m‘ Es wird angenommen, dass Ausdruck mehrere Zeilen hat, wobei ^ der Anfang einer Zeile und $ das Ende einer Zeile ist, unabhängig von der Position dieser Zeichen im Ausdruck. Standardmäßig wird der Ausdruck als einzelne Zeile angenommen.

‚x‘ Leerzeichen werden ignoriert. Standardmäßig werden Leerzeichen wie jedes andere Zeichen verglichen.

Notiz

  • Die Bedingung REGEXP_LIKE verwendet den Eingabezeichensatz zum Auswerten von Zeichenfolgen.
  • Wenn Sie übereinstimmende Matchparameter-Werte angeben, verwendet die Bedingung REGEXP_LIKE den letzten Wert, um den Konflikt zu lösen.
  • Wenn der match_parameter weggelassen wird, verwendet die REGEXP_LIKE-Bedingung die vom Parameter NLS_SORT bestimmte Groß- und Kleinschreibung.
  • Siehe auch die Oracle LIKE-Bedingung.

Beispiel – Wählen Sie mehr als eine Alternative

Das erste Oracle REGEXP_LIKE-Bedingungsbeispiel, das wir betrachten werden, beinhaltet das Verwenden von | pattern.

Lassen Sie uns erklären, wie das | pattern funktioniert in der Oracle REGEXP_LIKE-Bedingung. Zum Beispiel:

Dieses REGEXP_LIKE-Beispiel gibt alle Kontakte zurück, deren letzter Name entweder Anderson, Andersen oder Andersan ist. Das | pattern sagt uns, nach dem Buchstaben ‚o‘, ‚e‘ oder ‚a‘ zu suchen.

Beispiel – Match am Anfang

Als nächstes verwenden wir die REGEXP_LIKE-Bedingung, um am Anfang einer Zeichenfolge zu suchen. Zum Beispiel:

Dieses REGEXP_LIKE-Beispiel gibt alle Kontakte zurück, deren Nachname mit ‚A‘ beginnt.

Beispiel – Match zu Ende

Als Nächstes verwenden wir die Bedingung REGEXP_LIKE, um am Ende einer Zeichenfolge zu suchen. Zum Beispiel:

Dieses REGEXP_LIKE-Beispiel gibt alle Kontakte zurück, deren last_name mit ’n‘ endet.