Inhaltsverzeichnis


Startseite


Reguläre Ausdrücke (Regular Expressions)


Reguläre Ausdrücke

Reguläre Ausdrücke können in ASYS in Prüfregeln und Abfragen als Kriterien eingesetzt werden.

In ASYS wird das RegEx-API (package 'java.util.regex') des Java Runtime Environment verwendet. Die Syntax entspricht weitgehend dem Perl5-Standard.

Für weitere Informationen zur Syntax und den Abweichungen vom Perl5-Funktionsumfang siehe http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html.

Das Thema 'Reguläre Ausdrücke' wurde im ASYS-Workshop für Fachadministrator am 03./04.03.2008 in Würzburg behandelt. Im abschließenden Skript zum Workshop sind in Kapitel 3.3 eine Reihe von Beispielen und Erklärungen enthalten. Dieser Teil des Skripts ist nachfolgend wiedergegeben:


3.3 Verbesserungen der freien Abfragen

Wenn freie Abfragen mit der passenden ID des zugehörigen Aufgabenbereichs als erstem Result-Parameter versehen werden, kann die Maske des Aufgabenbereichs aus der Trefferliste der Abfrage mit dem passenden Datensatz direkt geöffnet werden.

Die durch die Anwender einzugebenden Parameter einer freien Abfrage können mit ergänzenden Eigenschaften durch den Administrator versehen werden (s. Kap. 5.2.7 des Admin-Handbuchs)1).

RegExp (Regular Expression = regulärer Ausdruck) ist eine Zeichenkette, mit der ein Muster für den durch den Anwender einzugebenden Parameterwert beschrieben wird. Das Muster wird im Prinzip Zeichen für Zeichen beschrieben. Nachfolgend einige grundlegende Bestandteile, aus denen sich reguläre Ausdrücke zusammensetzen:

Code Bedeutung
. Ein beliebiges Zeichen
Ein Punkt als Zeichen wird mit \. ausgedrückt!
H Genau das Zeichen H (aber nicht h!)
[abcd] Zeichenklasse: eines der Zeichen a, b, c oder d (kann auch als [a-d] geschrieben werden)
[^abcd] Negation, hier also irgendein Zeichen, außer a, b, c oder d
^ding Sucht nach der Zeichenkette ‚ding‘ am Zeilenanfang - Achtung: keine eckigen Klammern hier!
ding$ Sucht nach der Zeichenkette ‚ding‘ am Zeilenende
(und ^$ sucht nach Leerzeilen ohne Leerzeichen)
| Logisches Oder
( ) Logische Gruppierung, z.B. um die Alternativen für den Oder-Operator abzugrenzen
? Der davor stehende Ausdruck ist optional (0 oder 1 mal vorkommend)
+ Der davor stehende Ausdruck ist mindestens einmal vorhanden (1 bis n mal vorkommend)
* Der davor stehende Ausdruck ist beliebig oft vorhanden (0 bis n mal vorkommend)
[ABC]{3} Genaue Anzahl: der davor stehende Ausdruck muss genau 3 mal vorkommen
{1,5} Intervall: Der davor stehende Ausdruck muss mindestens einmal vorkommen, darf aber höchstens fünfmal vorkommen
\w Ein ‚Wortzeichen‘, entspricht [a-zA-Z0-9_]
\W Alle ‚Nicht-Wortzeichen‘, entspricht [^a-zA-Z0-9_]
\d Eine Ziffer (Digit), entspricht [0-9]
\D Alle ‚Nicht-Ziffern‘, entspricht [^0-9]
\s Ein Leerzeichen (Space), also Leerzeichen, Tab, Zeilenumbruch (Carriage Return), Formfeed und weitere
\t Tab
\n Newline - neue Zeile, die horizontale Position der Schreibmarke wird ggf. nicht verändert. 2)
\r Carriage Return - Wagenrücklauf, eine neue Zeile wird ggf. nicht angehängt. 3)
\p{Lu} Vordefinierte Zeichenklassen aus dem Unicode-Zeichenraum mit Namen, hier Lu=Großbuchstaben
Weitere Klassen:
Ll=Kleinbuchstaben
Sm=mathematische Symbole, z.B. + / - * = ≥ ± ≠
Sc=Währungszeichen, z.B. $ € ₤ ¥ …
Nl=römische Ziffern
Uvm.

Aufgabe 13: Was bedeuten die folgenden regulären Ausdrücke? Schreiben Sie ein gültiges Beispiel auf. Wo setzen wir das wohl in ASYS/der BMU-Schnittstelle ein?

Aufgabe 14: Formulieren Sie einen regulären Ausdruck für folgende Zeichenketten.

Für Format siehe z.B. http://www.apostate.com/vb-format-syntax4)
Für RegExp siehe z.B. http://networking.ringofsaturn.com/Web/regex.php

Achtung: Sie können in den Variablen ‚Default‘, ‚Type‘, ‚Format‘ und ‚RegExp‘ Eintragungen vornehmen, die in sich widersprüchlich sind, oder sich sogar gegenseitig ausschließen (z.B. wenn der Default-Wert nicht auf den Typ oder den regulären Ausdruck passt).




(Hinweis: Für den Inhalt dieser Seite ist die IKA verantwortlich)


Weitere Informationen zu diesem Thema
landesspezifische Zusatzinformationen: SH HH NI HB NW HE RP BW BY SL BE MV ST BB TH SN

Zurück zum Seitenanfang

1)
Dieser Verweis ist mittlerweile überholt und nicht mehr gültig, da das hier vorliegenden Wiki das Handbuch abgelöst hat.
2) , 3)
Diese beiden Zeichen sind in der Windows-Welt begrifflich noch sehr an Schreibmaschinen angelehnt: Mit Newline wird nur die Walze mit dem Papier um eine Zeile fortbewegt. Mit Carriage Return wird die Position des Schreibkopfes an den Anfang der Zeile bewegt, die Walze mit dem Papier bleibt unverändert. Der Vorschubhebel einer Schreibmaschine sorgte für den Rücktransport des Schreibkopfes - bzw. der Walze mit dem Papier - zum Beginn der Zeile und schob das Papier mittels Walzendrehung eine Zeile nach oben: Carriage Return & Newline –> \r\n. Andere Betriebssysteme - z.B. Unix, Linux und ihr Abkömmlinge - weichen z.T. hiervon ab.
4)
War Thema im Workshop, wird hier aber nicht behandelt!