[IDS-Logo] [IDS-Logo]
Seite drucken Thema drucken Sitemap Suche Impressum Datenschutz Kontakt
Syntax der ZeileneingabeSuchoperatorenWortformoperatorenreguläre Ausdrücke

Reguläre Ausdrücke mit #REG()

Für die Formulierung von Suchbegriffen mittels erweiterten regulären Ausdrücken kann der Operator #REG eingesetzt werden. Pro Suchanfrage sind mehrere davon möglich. Die regulären Operatoren *, ? und + werden in COSMAS II zwar ebenfalls als Platzhalter-Operatoren eingesetzt; innerhalb von #REG() werden sie jedoch nach einer anderen Syntax eingesetzt.

Syntax

Der Operator #REG() kann einen oder mehrere reguläre Ausdrücke1 aufnehmen, z.B. #REG(Ausdruck) oder #REG(Ausdr1 Ausdr2 etc.). Jeder Ausdruck steht für eine Wortform und generiert eine eigene temporäre Wortformliste. Die verschiedenen Ausdrücke werden intern durch ein logisches oder im Endergebnis zusammengeführt.

Die Syntax der erweiterten regulären Ausdrücke ist zu umfangreich, als dass sie hier beschrieben werden könnte. Sie kann allerdings überall im Internet nachgelesen werden. Mit den zahlreichen nachfolgenden Beispielen können schon etliche interessante Fälle abgedeckt werden.

Folgende Einschränkungen seien allerdings an dieser Stelle erwähnt: vordefinierte Symbole wie \< (Wortanfang), \> (Wortende), \w (Klasse der alphanumerischen Zeichen) und /W (Klasse aller nicht-alphanumerischen Zeichen) verhalten sich anders als erwartet und sollten eher vermieden werden.

Bemerkung

Beachten Sie bitte, welche Option einen Einfluss auf die Ausführung von #REG() hat.

Beispiele

#REG(Archi.*ung)

Damit werden Wortformen gesucht, die Archi und ung enthalten. Abhängig von der eingestellten Option Groß-/Kleinschreibung beachten wird hierbei die Groß-/Kleinschreibung der Zeichen gegenüber dem regulären Ausdruck beachtet oder nicht. Die Teilbegriffe Archi bzw. ung werden nicht nur am Wortanfang und -ende gesucht, sondern auch innerhalb der Wortformen.

#REG( ^Archi.*ung$ )

Durch das Einfügen der Operatoren ^ (für Wortanfang) und $ (für Wortende) werden einzig die Wortformen gesucht, die mit Archi beginnen und mit ung enden.

#REG( Verschlusss?ache )

Hiermit werden Varianten von Verschlusssache mit 2 oder 3 's' gesucht.

#REG( Redakteur(s|e|en|in|innen)? )

Hiermit werden Varianten von Redakteur mit den fakultativen Endungen s, e, en, in und innen gesucht.

#REG( ^1[89][0-9][0-9]$ )

Damit lassen sich Jahreszahlen zwischen 1800 und 1999 suchen.

#REG( ^1[89][0-9]{2}$ )

Durch die Angabe von {2} lassen sich in etwas kompakterer Form die Jahreszahlen zwischen 1800 und 1999 suchen.

#REG( ^[0-9]{2}\.[0-9]{2}\.[0-9]{2,4}$ )

Wieder ein regulärer Ausdruck für Datumsangaben im Format 21.10.2005 oder 21.10.05. Da der einfache Punkt in regulären Ausdrücken die Bedeutung eines beliebigen Zeichens hat, muss hier \. geschrieben werden, um genau den Punkt zu spezifizieren.

#REG( ^[^0-9]*Uhr )

Gefunden werden hiermit Varianten von Uhr, bei denen zwischen dem Wortanfang und der Zeichenkette Uhr keine Ziffern vorkommen. Damit werden z.B. Angaben wie 19Uhr, 18.30Uhr etc. vermieden.

#REG( ^[^-]*bahn[^-]*$ )

Hiermit werden, unter Ausschluss jeglichen Bindestrichs, Wortbildungen von Bahn gesucht.

#REG( ^[^-]*bahn-[^-]*$ )

Durch das hinter bahn eingefügt - werden nun Wortbildung von bahn mit genau 1 Bindestrich gesucht. Gefunden werden z.B. Eisenbahn-Gesellschaft, bahn-übliche, etc..

#REG( ^[^-]{4,6}-[^-]{4,6}-[^-]{4,6}$ )

Gesucht werden hiermit Wortzusammensetzungen bestehend aus genau 2 Bindestrichen und drei Teilen mit 4 bis 6 Zeichen. Gefunden werden z.B. "Alte-Welt"-Wirt, "Sisi"-Gedenk-Kuchen, "Tante-Emma"-Laden, Zwölf-Punkte-Skala, etc.

#REG( ^[[:upper:]][[:lower:]]{2,5}[[:upper:]][[:lower:]]+ )

Sogenannte Zeichenklassen können in der Form [[:upper:]] oder [[:digit:]] spezifiziert werden. Das obige Beispiel sucht nach Wortformen mit mindestens 1 Binnenmajuskel nach folgendem Muster:

zuerst eine Majuskel, gefolgt von 2-5 Minuskeln, gefolgt von genau 1 Binnenmajuskel, gefolgt von mindestens 1 Minuskel.

Gefunden werden Wortformen wie AbiWord, ActionFirst, ÜberLeben, etc. aber auch ActionFormBean mit mehreren Binnenmajuskeln.

Weiterführendes Beispiel

#COND( #REG( ^Archi.*ung$ ), -sa)

Reguläre Ausdrücke können auf diese Art mittels des #COND()-Operators an bestimmten Positionen im Text gesucht werden. In diesem Beispiel werden Wortformen gefunden, die nicht am Satzanfang stehen.

Zu beachten ist in diesem Fall folgendes: der reguläre Ausdruck erzeugt in einem ersten Schritt eine temporäre Wortformliste zu ^Archiv.*ung$ ohne die Position im Text zu überprüfen. Erst im zweiten Schritt findet der Vorgang statt, der die Wortformen am Satzanfang rausfiltert.

Hinweis zu den Klammern ( und )

Die runden Klammern können innerhalb eines regulären Ausdrucks eingesetzt werden, um Alternativen auszudrücken, siehe dazu das Beispiel zu Redakteur.

Sie können jedoch nicht als suchbare Zeichen eingesetzt werden, weder einzeln noch über die Escape-Sequenz \( oder \), da dies zu einem Syntaxfehler im Query Interpreter von COSMAS II führt. Runde Klammern müssen in COSMAS II ohne den Operator #REG() eingesetzt werden.

Optionen

Suche - Suchmodalitäten

In dieser Optionskategorie wirkt sich einzig die Option Groß-/Kleinschreibung beachten für andere Zeichen ebenfalls auf die Auflösung von regulären Suchausdrücken aus: ist sie eingeschaltet, wird die Groß-/Kleinschreibung des regulären Ausdrucks berücksichtigt (empfohlen), andernfalls nicht.

Die beiden anderen Optionen der Suchmodalitäten haben hier keine Wirkung.

Suche - Expansionslisten und Begrenzung der Ergebnismenge

Die Optionen für die Expansionslisten und die Begrenzung der Ergebnismenge sind für reguläre Ausdrücke ebenfalls wirksam.

 


1: die in COSMAS II angebotenen regulären Ausdrücke entsprechen der erweiterten GNU-Implementation.
COSMAS II, Zentrale DV-Dienste - 09. 06. 2015