Einfache Textmuster und reguläre Ausdrücke

Sie verwenden reguläre Ausdrücke, um bei der Suche eine Menge von Zeichenketten zu spezifizieren, die alle dem regulären Ausdruck entsprechen.

Einfache Textmuster

Ein einfaches Textmuster ist eine Kombination von Zeichen, die durch einen Stern '*' (Asterisk) als Joker für eine beliebige Anzahl von beliebigen Zeichen ergänzt werden kann.

Einfache Textmuster können Sie bei der Suche nach Namen verwenden.

Beispiele für einfache Muster:

  • Anna findet Anna
  • An* findet Anna und Ananas
  • *nn* findet Anna und Mann

Verwendung von regulären Ausdrücken

In verschiedenen Innovator-Komponenten können Textmuster oder reguläre Ausdrücke verwendet werden, um nicht eine einzelne Zeichenkette, sondern eine Menge von Zeichenketten, die alle dem Textmuster oder dem regulären Ausdruck entsprechen, zu spezifizieren.

Reguläre Ausdrücke werden in Innovator an folgenden Stellen verwendet:

  • im Innovator-Modelleditor bei der Suche in Spezifikationstexten oder Anmerkungen nach enthaltenem Text

  • im Konfigurationseditor zur Beschreibung einer Namenseinschränkung

    Hier wird ein eingegebener Name gegen dieses Muster auf Gültigkeit geprüft und dann zugelassen oder abgelehnt.

Die regulären Ausdrücke in Innovator nutzen dabei eine Teilmenge der z. B. in der Wikipedia (http://de.wikipedia.org/wiki/Regulärer_Ausdruck) beschriebenen Möglichkeiten zur Bildung von Textmustern.

Bildung regulärer Ausdrücke

Im Folgenden wird erläutert, wie reguläre Ausdrücke zu bilden sind.

  • Reguläre Ausdrücke werden in Innovator stets innerhalb eines Absatzes ausgewertet.

    Beispiel:

    Die Suche nach Klasse.*mehrere findet den folgenden Text.

    Die Suche nach Klasse.*Attribute findet diesen Text nicht.

    Die Klasse hat mehrere

    - Attribute

    - Methoden

  • Jedes Zeichen wird durch sich selbst dargestellt, mit Ausnahme der Metazeichen:

    [ ] ( ) { } | ? + - . * ^ $ \

  • Metazeichen, nach denen literal gesucht werden soll, müssen mit einem Backslash '\' maskiert werden.

    Beispiele:

    Name\\Vorname findet Name\Vorname

    \[a\] findet [a]

    \^Dach findet ^Dach

    Dollar\$ findet Dollar$

  • Das Minuszeichen '-' hat nur zwischen eckigen Klammern eine Sonderbedeutung.

  • Zwischen eckigen Klammern [] wird eine Menge von Zeichen definiert. Der Ausdruck steht dann für ein Zeichen aus dieser Menge.

    Die Menge kann durch Aufzählen ihrer Elemente und/oder die Angabe eines Bereichs der ASCII-Tabelle definiert werden. Solche Bereiche werden durch ihr erstes und letztes Zeichen, getrennt durch ein Minuszeichen '-', angegeben.

    Innerhalb dieser eckigen Klammern sind Sonderzeichen entwertet, d.h. '\', '$', '^', und '.' stehen für sich selbst. Es kann also nicht z.B. der Zeilenanfang als Element einer Menge definiert werden. Allerdings erhält das Dach '^' an bestimmter Position innerhalb eckiger Klammern eine neue Sonderbedeutung. Folgt nämlich unmittelbar auf eine öffnende eckige Klammer '[' ein Dach '^', so wird nach dem Komplement der angegebenen Menge gesucht.

    Beispiele:

    m[aiu]ster findet master, mister oder muster

    test[1-4] findet test1, test2, test3 oder test4

    [^A-Za-z] findet alle Zeichen außer Buchstaben

  • Der Punkt '.' steht für ein beliebiges Zeichen.

    Beispiel:

    function(.) findet function(a), function(3) ...

  • Zwischen geschweiften Klammern {} werden verschiedene Vielfachheiten des voranstehenden Ausdrucks angegeben.

    Beispiele:

    {n} gibt an, dass der Ausdruck genau n-mal vorkommen muss

    {n,} gibt an, dass der Ausdruck mindestens n-mal vorkommen muss

    {n,m} gibt an, dass der Ausdruck mindestens n-mal und höchstens m-mal vorkommen darf

    {0,m} gibt an, dass der Ausdruck maximal m-mal vorkommen darf

  • Das Fragezeichen '?' steht für ein optionales Vorkommen des voranstehenden Ausdrucks und entspricht somit {0,1}.

    Beispiel:

    D[- ]?[0-9]{5} findet deutsche Postleitzahlen mit Länderkennung in den Formen 'D', 'D ' oder 'D-'.

  • Der Stern '*' (Asterisk) steht für beliebig häufige Wiederholung des voranstehenden Ausdrucks (auch keinmal) und entspricht somit {0,}.

    Beispiele:

    Aus[a-z]* findet Aus, Ausfall, Ausweg ...

    [1-9][0-9]* findet alle natürlichen Zahlen

  • Das Plus '+' steht für mindestens ein Vorkommen des voranstehenden Ausdrucks und entspricht somit {1,}.

    Beispiel:

    [ab]+ findet a, b, aa, bbaab usw.

  • Das Dach '^' steht für Zeilenanfang.

    Beispiel:

    ^Variable findet Variable am Zeilenanfang

  • Das Dollarzeichen '$' steht für das Zeilenende.

    Beispiel:

    Term;$ findet Term; am Zeilenende

  • Der senkrechte Strich '|' steht für 'oder'. Die Alternativen werden dabei in runden Klammern vom restlichen Text getrennt.

    Beispiel:

    (Ein|Aus)gabe findet Eingabe und Ausgabe

    Komplexeres Beispiel für ein Datum (prüft nicht auf Anzahl der Tage im jeweiligen Monat!):

    ^(0[1-9]|[12][0-9]|3[0-1])\.(0[1-9]|1[0-2])\.(19|20|21)[0-9][0-9]$