Inhaltsverzeichnis

Search

  1. Vorwort
  2. Umwandlungssprache
  3. Konstanten
  4. Operatoren
  5. Variablen
  6. Datumsangaben
  7. Funktionen

Referenzhandbuch für die Umwandlungssprache

Referenzhandbuch für die Umwandlungssprache

REG_EXTRACT

REG_EXTRACT

Extrahiert Untermuster eines regulären Ausdrucks in einem Eingabewert. Beispiel: Aus einem Muster eines regulären Ausdrucks für einen vollständigen Namen können Sie den Vor- oder Nachnamen extrahieren.
Mit REG_REPLACE können Sie ein Zeichenmuster in einem String durch ein anderes Zeichenmuster ersetzen.

Syntax

REG_EXTRACT(
subject
,
'pattern', subPatternNum
)
In der folgenden Tabelle werden die Argumente für diesen Befehl beschrieben:
Argument
Erforderlich/
Optional
Beschreibung
subject
Erforderlich
Zeichenfolgen-Datentyp. Übergibt den Wert, der mit dem Muster des regulären Ausdrucks verglichen werden soll.
pattern
Erforderlich
Zeichenfolgen-Datentyp. Das Muster des regulären Ausdrucks, das abgeglichen werden soll. Sie müssen dafür die Perl-kompatible Syntax für reguläre Ausdrücke verwenden. Setzen Sie das Muster zwischen einfache Anführungszeichen. Setzen Sie alle Untermuster in Klammern.
subPatternNum
optional
Ganzzahlwert. Nummer des Untermusters des regulären Ausdrucks, der abgeglichen werden soll. Beachten Sie beim Ermitteln der Untermusternummer folgende Richtlinien:
  • Kein Wert oder 1: Extrahiert das erste Untermuster des regulären Ausdrucks.
  • 2: Extrahiert das zweite Untermuster des regulären Ausdrucks.
  • n: Extrahiert das
    n
    te Untermuster des regulären Ausdrucks.
Standard ist 1.

Verwendung der Perl-kompatiblen Syntax für reguläre Ausdrücke

Für die Funktionen REG_EXTRACT, REG_MATCH und REG_REPLACE müssen Sie die Perl-kompatible Syntax für reguläre Ausdrücke verwenden.
Die folgende Tabelle enthält Richtlinien für die Perl-kompatible Syntax für reguläre Ausdrücke:
Syntax
Beschreibung
. (Punkt)
Findet eine Instanz eines beliebigen Zeichens.
[a-z]
Findet eine Instanz eines Zeichens in Kleinbuchstaben. Beispiel: [a-z] findet „ab“. Zum Finden von Übereinstimmungen mit Zeichen in Großbuchstaben verwenden Sie [A-Z].
\d
Findet eine Instanz einer Ziffer zwischen 0 und 9.
\s
Findet ein Leerraumzeichen.
\w
Findet eine Instanz eines alphanumerischen Zeichens, einschließlich Unterstrich (_)
()
Gruppiert einen Ausdruck. Beispiel: Die Klammern in „(\d-\d-\d\d)“ gruppieren den Ausdruck „\d\d-\d\d“, der zwei beliebige Ziffern gefolgt von einem Bindestrich und zwei weiteren beliebigen Ziffern findet, etwa „12-34“.
{}
Findet Zeichen anhand ihrer Anzahl. Beispiel: „\d{3}“ findet drei beliebige Ziffern, etwa 650 oder 510. „[a-z]{2}“ findet zwei beliebige Buchstaben, z. B. CA oder NY.
?
Findet eine oder keine Instanz des vorherigen Zeichens bzw. der vorherigen Zeichengruppe. Beispiel: \d{3}(-{d{4})? findet drei beliebige Ziffern, möglicherweise gefolgt von einem Bindestrich und vier beliebigen Ziffern.
* (Sternchen)
Findet keine oder mehrere Instanzen der Werte, die auf das Sternchen folgen. Beispiel: „*0“ findet jeden Wert, vor einer 0 steht.
+
Findet eine oder mehrere Instanzen der Werte, die auf ein Pluszeichen folgen. Beispiel: „\w+“ findet jeden Wert, der auf ein alphanumerisches Zeichen folgt.
Beispiel: Der folgende reguläre Ausdruck findet fünfstellige US-Postleitzahlen, z. B. 93930, sowie neunstellige Postleitzahlen wie 93930-5407:
\d{5}(-\d{4})?
„\d{5}“ bezeichnet fünf beliebige Ziffern, etwa 93930. Die Klammern rund um „-\d{4}“ gruppieren dieses Segment des Ausdrucks. Der Bindestrich bezeichnet den Bindestrich in einer neunstelligen Postleitzahl, z. B. 93930-5407. „\d{4}“ bezeichnet vier beliebige Ziffern, etwa 5407. Das Fragezeichen gibt an, dass der Bindestrich und die letzten vier Ziffern entweder gar nicht oder nur einmal auftreten dürfen.

Konvertieren der COBOL-Syntax in Perl-kompatible Syntax für reguläre Ausdrücke

Wenn Sie mit der COBOL-Syntax vertraut sind, können Sie anhand der folgenden Informationen Perl-kompatible reguläre Ausdrücke formulieren.
Die folgende Tabelle zeigt Beispiele der COBOL-Syntax und deren Entsprechungen in Perl:
COBOL-Syntax
Perl-Syntax
Beschreibung
9
\d
Findet eine Instanz einer Ziffer zwischen 0 und 9.
9999
\d\d\d\d
oder
\d{4}
Findet vier beliebige Ziffern zwischen 0 und 9, etwa 1234 oder 5936.
x
[a-z]
Findet eine Instanz eines Buchstabens.
9xx9
\d[a-z][a-z]\d
Findet eine beliebige Ziffer gefolgt von zwei Buchstaben und einer weiteren Ziffer, etwa „1ab2“.

Konvertieren der SQL-Syntax in Perl-kompatible Syntax für reguläre Ausdrücke

Wenn Sie mit der SQL-Syntax vertraut sind, können Sie anhand der folgenden Informationen Perl-kompatible reguläre Ausdrücke formulieren.
Die folgende Tabelle zeigt Beispiele der SQL-Syntax und deren Entsprechungen in Perl:
SQL-Syntax
Perl-Syntax
Beschreibung
%
. *
Findet jede beliebige Zeichenfolge.
A%
A.*
Findet den Buchstaben „A“ gefolgt von einer Zeichenfolge, etwa „Arena“.
_
. (Punkt)
Findet eine Instanz eines beliebigen Zeichens.
A_
A.
Findet „A“ gefolgt von einem beliebigen Zeichen, etwa AZ.

Rückgabewert

Gibt den Wert des
n
ten Untermusters zurück, das Teil des Eingabewerts ist. Das
n
te Untermuster basiert auf dem für subPatternNum angegebenen Wert.
NULL, wenn die Eingabe ein Nullwert ist oder das Muster NULL ergibt.

Beispiel

Mit REG_EXTRACT in einem Ausdruck können Sie den zweiten Vornamen aus einem regulären Ausdruck extrahieren, mit dem nach Vornamen, zweiten Vornamen und Nachnamen gesucht wird. Beispiel: Der folgende Ausdruck gibt den zweiten Vornamen in einem regulären Ausdruck zurück:
REG_EXTRACT( Employee_Name, '(\w+)\s+(\w+)\s+(\w+)',2)
Employee_Name
Return Value
Stephen Graham Smith
Graham
Juan Carlos Fernando
Carlos