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:
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 |