Reguläre Ausdrücke



Reguläre Ausdrücke (Regular Expressions) dienen dazu, Schablonen für Zeichenketten zu modellieren. Für Kontaktformulare auf Webseiten können sie z. B. verwendet werden, um eine E-Mail-Adresse zu überprüfen. In diesem Fall wird durch einen regulären Ausdruck die Form definiert und in den Code der Website eingepflegt; eine Eingabe in das Kontaktformular wird dann mit dem durch den regulären Ausdruck gegebenen Muster abgeglichen. Neben Webseiten ist ein gängiger Anwendungsbereich das Durchsuchen von Texten. Bspw. ist es möglich, mit regulären Ausdrücken Begriffe ausfindig zu machen, die mit einem „D“ starten und einem „m“ enden; die Anwendungsbereiche sind nahezu unerschöpflich. Einen Spickzettel für Schreibweisen und gängige Ausdrücke in der Kunstgeschichte finden Sie in den folgenden Abschnitten. Reguläre Ausdrücke lassen sich auf Webseiten wie https://regex101.com testen.

Schreibweise

Die Schreibweise von regulären Ausdrücken ist standardisiert und in jeder Programmiersprache identisch. MAX verwendet den Standard ohne Abweichungen. Zur Hilfestellung können somit allgemeingültige Tutorials im Internet herangezogen werden. Die folgenden Tabellen beinhalten grundlegende Regeln der Schreibweise, die einzelnen Punkte wurden dem Bereich „Quick References“ der Seite https://regex101.com entnommen. Auf der Webseite sind fortgeschrittene Schreibweisen ebenfalls gelistet.

Vordefinierte Zeichenklassen Grenzbezüge
. Beliebiges Zeichen ^ Start einer Zeile oder Beginn des Textes
\d Beliebige Zahl (entspricht „[0-9]“) $ Zeilenende oder Ende des Textes
\D Beliebiges Zeichen, außer Zahlen (entspricht „[^0-9]“) \b Wortgrenze
\s Leerzeichen \B Alles außer einer Wortgrenze
\s Alles außer Leerzeichen \A Beginn des Textes
\w Beliebiges alphanummerisches Zeichen \z Ende des Textes
Definieren von eigenen Zeichenklassen Aneinanderreihung und Gruppierung
[abc] a, b oder c XY X gefolgt durch Y
[^abc] Nicht a, b oder c X|Y Entweder X oder Y
[a-z] a bis z (X) X als Gruppe mit späterer Bezugsmöglichkeit $n
[a-zA-Z] a bis z oder A bis Z (?:X) X als Gruppe ohne späterer Bezugsmöglichkeit
Quantität
X? X einmal oder gar nicht X{n} X exakt n-mal
X* X gar nicht bis beliebig oft X{n, } X n-mal bis beliebig oft
X+ X einmal bis beliebig oft X{n,m} X n- bis m-mal

Allgemeine Beispiele

Ausdruck Beschreibung
[0-9]{2,4} Dieser reguläre Ausdruck ermöglicht es Ihnen, Datumsangaben anzusprechen, die zwei- bis vierstellig sind. In den Daten „12. Jh.“ oder „um 1850“ würden die Daten „12“ respektive „1850“ angesprochen. Dies ermöglicht es, mit rein numerischen Werten weiterzuarbeiten.
^00$ In der Kunstgeschichte sind Jahreszahlen teilweise nur mit der Genauigkeit eines Jahrhunderts bekannt; in den Daten äußert sich dies bspw. durch „13. Jahrhundert“. Indem zunächst alle Zeichen bis auf Ziffern entfernt werden, können die Daten mit dem regulären Ausdruck „^13$“ genauer betrachtet oder geändert werden sollen. Durch das „^“ muss die definierte Zeichenkette mit einer 1 beginnen und durch das „$“ mit einer 3 enden.
\(.*\) Weitere Informationen werden häufig in runden Klammern hinter Hauptinformationen geführt. Dabei sind beide meist leichter zu verarbeiten, wenn sie voneinander getrennt werden. Der reguläre Ausdruck „\(.*\)“ spricht die entsprechenden Zeichenketten an und ermöglicht es somit, die Daten zu bearbeiten. Der Backslash ist vor den runden Klammern notwendig, damit die runde Klammer als gesuchtes Element und nicht als Teil der Schreibweise gilt. Die Kombination „.*“ bedeutet, dass an dieser Stelle beliebige und beliebig viele Zeichen stehen können.
(F|Ph)oto.* Unterschiedliche Schreibweisen werden als zwei verschiedene Angaben verstanden. Die Datensätze sind insofern anzugleichen. Mit einem möglichst allgemein gehaltenen regulären Ausdruck können unterschiedliche Schreibweisen ausgemacht werden. Das Beispiel „(F|Ph)oto.*“ zeigt, wie innerhalb einer runden Klammer durch einen senkrechten Strich eine Oder-Bedingung geschaffen wurde; außerdem wurde der Begriff abgeschnitten. Durch die Kombination „.*“ können alle denkbaren Zeichenketten folgen.
(Leinwand) Wenn eine explizite Zeichenfolge von Interesse ist, kann dieser in runde Klammern geschrieben werden. Diese Schreibweise dient der Gruppierung der Zeichenfolgen. In diesem Fall müssen die Zeichen exakt übereinstimmen; sowohl in ihrer Reihenfolge als auch in ihrer Groß- und Kleinschreibung. Die runden Klammern sind hierbei Teil der Schreibweise und nicht Teil der definierten Zeichenfolge.

Operationen mit regulären Ausdrücken

MAX unterstützt reguläre Ausdrücke bei den folgenden Operationen.

Filter übernehmen

Beispiel: [0-9]. Reduziert die Werte einer Spalte auf Ziffern. Die eckigen Klammern beinhalten eine eigens definierte Zeichenklasse. Diese Klasse beinhaltet Ziffern von 0 bis 9. Es ist keine Länge definiert, weshalb der Ausdruck alle natürlichen Zahlen beinhaltet.

Zeichenfolgen ersetzen

Beispiel: .*(H|h)olz.* = Holz. Ersetzt die Inhalte der Zellen, die eine der Schreibweisen („Holz“ oder „holz“) beinhalten, mit dem Begriff „Holz“. Sowohl der Zelleninhalt „Altes Buchenholz“ und „Holz mit Rinde“ würden hierbei auf den Begriff „Holz“ reduziert. Das Symbol „*“ zeigt an, dass beliebig viele und durch „.“ beliebige Zeichen vor und nach dem Begriff stehen können. Aufgrund der runden Klammern und dem senkrechten Strich ist beides, ein großes oder ein kleines „H“, erlaubt.

Regulären Ausdruck anwenden

Beispiel: [0-9]{2,4}. Durchsucht eine Spalte auf Zeichenketten, die aus zwei bis vier Ziffern bestehen und extrahiert diese. Die extrahierten Zahlen werden in neuen Spalten abgelegt. Die gesuchten Zeichen werden innerhalb der eckigen Klammern definiert; die minimale und maximale Länge der Zeichenketten ist wiederum in den geschweiften Klammern festgelegt.