Ansicht
Dokumentation

ABENREGEX_POSIX_SYNTAX_SIGNS - REGEX POSIX SYNTAX SIGNS

ABENREGEX_POSIX_SYNTAX_SIGNS - REGEX POSIX SYNTAX SIGNS

ABAP Short Reference   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Einzelzeichenmuster (obsolet)

Einzelzeichen werden durch Literalzeichen oder Operatoren repräsentiert. Durch Voranstellen eines Rückstrichs \ wird ein Sonderzeichen eines Operators als Literalzeichen interpretiert. Dies gilt insbesondere auch für den Rückstrich \ selbst, sodass der reguläre Ausdruck \\ auf das Einzelzeichen \ passt. Folgt dem Rückstrich ein Literalzeichen, so wird der Rückstrich ignoriert und gilt als nicht vorhanden.

Literalzeichen

Ein Literalzeichen ist ein Zeichen, das kein Sonderzeichen ist, oder ein Sonderzeichen, dem ein Rückstrich \ vorangestellt oder das in \Q ... \E eingeschlossen ist. Als Suchmuster stimmt ein Literalzeichen genau mit dem gleichen Einzelzeichen überein.

Hinweis

Die Berücksichtigung der Groß-/Kleinschreibung kann bei den zugehörigen Anweisungen bzw. Methoden gesteuert werden.

Beispiele

Die folgende Tabelle zeigt einige Ergebnisse eines Abgleichs mit Berücksichtigung der Groß-/Kleinschreibung.

Muster text match
A A X
A a -
\. . X
A AB -
AB AB X

Der reguläre Ausdruck AB ist eine Verkettung von zwei Ausdrücken für Einzelzeichen.

Operatoren für Einzelzeichen

Diese Operatoren werden aus den Sonderzeichen ., [, ], ^ und - aufgebaut, wobei die letzten beiden nur an besonderen Positionen innerhalb von [ ] als Sonderzeichen wirken. Die Sonderzeichen können durch das Voranstellen von \ zu Literalzeichen konvertiert werden.

Platzhalter für Einzelzeichen

Das Sonderzeichen . ist ein Platzhalter für ein beliebiges Einzelzeichen. Der Operator \C hat die gleiche Bedeutung wie das Sonderzeichen .. Ein regulärer Ausdruck . oder \C stimmt mit genau einem beliebigen Einzelzeichen überein.

Beispiele

Die folgende Tabelle zeigt einige Ergebnisse eines Abgleichs ohne Berücksichtigung der Groß-/Kleinschreibung.

Muster Text match
. A X
\C a X
. AB -
.. AB X

Der reguläre Ausdruck .. ist eine Verkettung von zwei Ausdrücken für Einzelzeichen.

Selbstdefinierte Mengen für Einzelzeichen

Die Sonderzeichen [ ] können um beliebig viele Literalzeichen oder Bezeichner für Zeichenklassen (siehe unten) gesetzt werden und definieren dadurch eine Menge von Literalzeichen. Ein regulärer Ausdruck [... ] stimmt mit genau einem Einzelzeichen überein, das innerhalb der Klammern als Literalzeichen aufgeführt ist, bzw. das in einer angegebenen Zeichenklasse enthalten ist. In den Klammern muss mindestens ein Literalzeichen oder ein Bezeichner für eine Zeichenklasse (siehe unten) stehen. Eines der Zeichen [ oder ], das direkt hinter der öffnenden Klammer steht, wird als Literalzeichen interpretiert. Manche der mit einem Rückstrich eingeleiteten Sonderzeichen wie \A oder \Q verlieren innerhalb von Mengen ihre Sonderfunktion und werden als einfaches Literalzeichen A bzw. Q interpretiert.

Beispiele

Die folgende Tabelle zeigt einige Ergebnisse einer Übereinstimmung.

Muster Text match
[ABC] B X
[ABC] ABC -
[AB][CD] AD X
[\d] 9 X

Der reguläre Ausdruck [AB][CD] ist eine Verkettung von zwei Ausdrücken für Einzelzeichen.

Negation einer selbstdefinierten Menge für Einzelzeichen

Wenn das Zeichen ^ als erstes Zeichen einer selbstdefinierten Menge für Einzelzeichen direkt hinter [ aufgeführt wird, wirkt es als Sonderzeichen und negiert die restliche Menge von Literalzeichen bzw. Zeichenklassen. Ein regulärer Ausdruck [^...] stimmt mit genau einem Einzelzeichen überein, das nicht innerhalb der Klammern als Literalzeichen aufgeführt ist, bzw. das nicht in einer angegebenen Zeichenklasse enthalten ist. Ein Zeichen ^, das nicht direkt hinter [ aufgeführt ist, wirkt als Literalzeichen.

Beispiele

Die folgende Tabelle zeigt einige Ergebnisse einer Übereinstimmung.

Muster Text match
[^ABC] B -
[^ABC] Y X
[^A][^B] BA X
[A^B] ^ X

Der reguläre Ausdruck [^A][^B] ist eine Verkettung von zwei Ausdrücken für Einzelzeichen.

Bereiche in einer selbstdefinierten Menge für Einzelzeichen

Wenn das Zeichen - zwischen zwei Literalzeichen steht, wirkt es als Sonderzeichen und definiert einen Bereich zwischen den Literalzeichen. Der Bereich ist die Menge von Zeichen, die in der Codepage des aktuellen Betriebssystems von den Literalzeichen eingeschlossen wird. Ein regulärer Ausdruck [...-... ] stimmt mit genau einem Einzelzeichen überein, das innerhalb des definierten Bereichs liegt. Ein Zeichen -, das nicht zwischen zwei Literalzeichen steht, wirkt als Literalzeichen. Ein Literalzeichen darf nicht Teil von zwei Bereichen sein, d.h., 'a-z-Z' ist kein gültiger regulärer Ausdruck.

Beispiele

Die folgende Tabelle zeigt einige Ergebnisse einer Übereinstimmung.

Muster Text match
[A-Za-z0-9] B X
[A-Za-z0-9] 5 X
[A-Za-z0-9] # -
[A-Za-z0-9] - -
[A-Za-z0-9-] - X

Im letzten Ausdruck wirkt das abschließende - nicht als Sonderzeichen.

Zeichenklassen

Innerhalb von mit [ ] definierten Mengen für Einzelzeichen können für bestimmte Zeichenmengen vordefinierte Zeichenklassen angegeben werden, deren Verhalten aber abhängig von der Sprache und der Plattform sein kann.

  • [:alnum:]
Menge aller alphanumerischen Zeichen (Vereinigung von [:alpha:] und [:digit:])
  • [:alpha:]
Menge aller Groß- und Kleinbuchstaben einschließlich der sprachabhängigen Spezialzeichen (Umlaute, Akzente, Diphtonge) jedoch ohne Ziffern
  • [:blank:]
Leerzeichen und horizontale Tabulatoren
  • [:cntrl:]
Menge aller Steuerzeichen
  • [:digit:]
Menge aller Ziffern 0 bis 9
  • [:graph:]
Menge aller anzeigbaren Zeichen außer Leerzeichen und horizontalem Tabulator
  • [:lower:]
Menge aller Kleinbuchstaben einschließlich der sprachabhängigen Spezialzeichen (Umlaute, Akzente, Diphtonge)
  • [:print:]
Menge aller anzeigbaren Zeichen (Vereinigung von [:graph:] und [:blank:])
  • [:punct:]
Menge aller Interpunktionszeichen
  • [:space:]
Menge aller Leerzeichen, Tabulatoren, Wagenrückläufe (CR) und Zeilenvorschübe
  • [:unicode:]
Menge aller Zeichen, deren Zeichendarstellung größer als 255 ist
  • [:upper:]
Menge aller Kleinbuchstaben einschließlich der sprachabhängigen Spezialzeichen (Umlaute, Akzente, Diphtonge)
  • [:word:]
Menge aller alphanumerischen Zeichen zuzüglich dem Unterstrich _
  • [:xdigit:]
Menge aller hexadezimalen Ziffern ("0"- "9", "A"- "F" und "a"-"f")

Hinweise

  • Die Zeichenklassen wirken nur innerhalb von [ ] wie angegeben. Ein regulärer Ausdruck [:digit:] definiert nicht die Menge aller Ziffern, sondern eine Zeichenmenge bestehend aus ":", "d", "g", "i" und "t". Um die Menge aller Ziffern anzugeben, sollte der reguläre Ausdruck [[:digit:]] verwendet werden.
  • Wegen ihrer Sprach - und Plattformabhängigkeit sind die Zeichenklassen nur mit Vorsicht zu verwenden.

Beispiele

Die folgende Tabelle zeigt einige Ergebnisse eines Abgleichs mit Berücksichtigung der Groß-/Kleinschreibung.

Muster Text match
[[:alnum:]] a X
[[:alnum:]] ; -
[[:alpha:]] 1 -
[[:punct:]] . X
[[:lower:]] â X
[[:upper:]] Ä X
[[:digit:][:alpha:]]+ a1b2c3 X

Abkürzungen für Zeichensätze

Für häufig benötigte Zeichensätze stehen spezielle Operatoren als Abkürzungen zur Verfügung:

Zeichensatz Abk. Bedeutung
[[:digit:]] \d Platzhalter für eine Ziffer
[^[:digit:]] \D Platzhalter für eine Nicht-Ziffer
[[:lower:]] \l Platzhalter für einen Kleinbuchstaben.
[^[:lower:]] \L Platzhalter für ein Zeichen, das kein Kleinbuchstabe ist.
[[:space:]] \s Platzhalter für ein Leerzeichen.
[^[:space:]] \S Platzhalter für ein Nicht-Leerzeichen.
[[:upper:]] \u Platzhalter für einen Großbuchstaben.
[^[:upper:]] \U Platzhalter für ein Zeichen, das kein Großbuchstabe ist.
[[:word:]] \w Platzhalter für ein alphanumerisches Zeichen zuzüglich dem Unterstrich _.
[^[:word:]] \W Platzhalter für ein nicht-alphanumerisches Zeichen außer dem Unterstrich _.

Hinweis

Wenn in den ABAP-Anweisung FIND und REPLACE oder beim Erzeugen eines Objekts der Klasse CL_ABAP_REGEX die Groß-/Kleinschreibung nicht berücksichtigt wird, sind \l und \u gleichbedeutend zu [[:alpha:]] bzw. \L und \U gleichbedeutend zu [^[:alpha:]]. Die Sonderzeichen \w, \u, \l, \d, \s können auch innerhalb von Sätzen [... ] aufgeführt werden. Die Sonderzeichen \W, \U, \L, \D, \S können nicht innerhalb von Sätzen verwendet werden und lösen die Ausnahme CX_SY_INVALID_REGEX aus.

Beispiele

Die folgende Tabelle zeigt einige Ergebnisse eines Abgleichs mit Berücksichtigung der Groß-/Kleinschreibung.

Muster Text match
\d 4 X
\D ; X
\l u X
\l U -
\L S X
\s   X
\S # X
\u U X
\U . X
\w A X
\w 8 X
\W : X
\W _ -

Äquivalenzklassen

Die Operatoren [..] und [==] sind für spätere Spracherweiterungen reserviert und lösen bei Verwendung innerhalb von Mengen derzeit die Ausnahme CX_SY_INVALID_REGEX aus.






Addresses (Business Address Services)   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 31555 Date: 20240523 Time: 114609     sap01-206 ( 234 ms )